json封装 与 解析

本文展示了如何在Java服务器端使用Gson库封装数据为JSON格式,并通过HTTP响应发送给Android客户端。在Android端,使用Gson解析接收到的JSON字符串,将数据映射到对应的自定义类中,以便于访问和处理图片URL等信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

server端封装json:

protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
   request.setCharacterEncoding("gbk");  
       response.setCharacterEncoding("gbk");  
       PrintWriter out= response.getWriter();  
       response.setContentType("text/html;charset=gbk"); 
       System.out.println("doget");
String method=request.getParameter("method");

Map<String, Object> map = new HashMap<String, Object>();

 if("selectUrl".equals(method)){

  String mechid = request.getParameter("mechid");//获得从android端传过来的参数
  Mechine mechine = iUser.selectUrl(mechid);//logo_picurl,background_picurl,AboutusUrl三张图地址

  List<BigPic> bigpics =  iUser.selectBig(mechid);
  List<SmallPic> smallPics =  iUser.selectSmall(mechid);
  List<LunboPic> lunboPics =  iUser.selectLunBo(mechid);
  
  map = new HashMap<String, Object>();
  map.put("logourl", mechine.getLogoUrl());
  map.put("backurl", mechine.getBackUrl());
  map.put("abouturl", mechine.getAboutusUrl());
  map.put("bigs", bigpics);
  map.put("smalls", smallPics);
  map.put("lunbos", lunboPics);


  JSONObject.fromObject(map).write(out);//把值封装成json格式 
  out.close();
  out = null;
  }

}

@Override
public Mechine selectUrl(String id) {
Connection conn = null; 
PreparedStatement ps = null;
ResultSet rs = null;
//String logoUrl = null;
Mechine mechine = new Mechine();
try {
conn = JdbcUtils.getConnection(); 
String sql = "SELECT * FROM [VenMaDB_Iked].[dbo].[P_MachineInfo] WHERE id = ?";
ps = conn.prepareStatement(sql);
ps.setString(1,id);

rs = ps.executeQuery();
while(rs.next()){
mechine.setLogoUrl(rs.getString("logo_picurl"));
mechine.setBackUrl(rs.getString("background_picurl"));
mechine.setAboutusUrl(rs.getString("machineinfo"));

}

} catch (SQLException e) {

e.printStackTrace();
} catch (Exception e) {

e.printStackTrace();
} finally {
JdbcUtils.free(rs, ps, conn);
}
return mechine;
}

@Override
public List selectBig(String machineid) {
Connection conn = null; 
PreparedStatement ps = null;
ResultSet rs = null;
//String logoUrl = null;
BigPic bigPic;
List<BigPic> bigPics = new ArrayList<BigPic>();
try {
conn = JdbcUtils.getConnection(); 
String sql = "SELECT * FROM [VenMaDB_Iked].[dbo].[P_MachineShowPic] WHERE machineid = ? and pictype='1'";
ps = conn.prepareStatement(sql);
ps.setString(1,machineid);
rs = ps.executeQuery();

while(rs.next()){
bigPic =  new BigPic();
bigPic.setBigPic(rs.getString("picurl"));
bigPics.add(bigPic);
}

} catch (SQLException e) {

e.printStackTrace();
} catch (Exception e) {

e.printStackTrace();
} finally {
JdbcUtils.free(rs, ps, conn);
}
return bigPics;

}


public class Mechine {


private String logoUrl;
private String backUrl;
private String aboutusUrl;

public String getAboutusUrl() {
return aboutusUrl;
}
public void setAboutusUrl(String aboutusUrl) {
this.aboutusUrl = aboutusUrl;
}
public String getLogoUrl() {
return logoUrl;
}
public void setLogoUrl(String logoUrl) {
this.logoUrl = logoUrl;
}
public String getBackUrl() {
return backUrl;
}
public void setBackUrl(String backUrl) {
this.backUrl = backUrl;
}

}


public class BigPic {


private String bigPic;


public String getBigPic() {
return bigPic;
}


public void setBigPic(String bigPic) {
this.bigPic = bigPic;
}

}

public class SmallPic {
private String smallPic;


public String getSmallPic() {
return smallPic;
}


public void setSmallPic(String smallPic) {
this.smallPic = smallPic;
}

}

public class LunboPic {
private String LunboPic;


public String getLunboPic() {
return LunboPic;
}


public void setLunboPic(String lunboPic) {
LunboPic = lunboPic;
}
}

封装后数据:

{
    "aboutusurl": "upload/img/machines/kedk0300000620160106/other/xxxx.jpg",
    "logourl": "upload/img/machines/kedk0300000620160106/logo/1456131090372.jpg",
    "smalls": [
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/6.jpg"
        },
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/7.jpg"
        },
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/8.jpg"
        },
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/9.jpg"
        },
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/4.jpg"
        },
        {
            "smallPic": "upload/img/machines/kedk0300000620160106/small/5.jpg"
        }
    ],
    "lunbos": [
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/1.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/2.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/xxxx.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/3.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/4.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/5.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/6.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/XXXX.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/8.jpg"
        },
        {
            "lunboPic": "upload/img/machines/kedk0300000620160106/base/9.jpg"
        }
    ],
    "bigs": [
        {
            "bigPic": "upload/img/machines/kedk0300000620160106/big/3.jpg"
        },
        {
            "bigPic": "upload/img/machines/kedk0300000620160106/big/4.jpg"
        },
        {
            "bigPic": "upload/img/machines/kedk0300000620160106/big/5.jpg"
        }
    ],
    "backurl": "upload/img/machines/kedk0300000620160106/background/1456131101602.jpg"
}

android端:

String url = "http://121.42.9.49/WeixinWbCs/AndroidServlet";
final Map<String, String> paras = new HashMap<String, String>();
 paras.put("method","selectUrl");
 paras.put("mechid","kedk0300000620160106");
 
 String jsonString =HttpUtil.doPost(url, paras);
 System.out.println("返回值是----"+jsonString);

 if(jsonString!= null){ 
  Gson gson=new Gson();
Mechine ked_pic=gson.fromJson(jsonString, Mechine.class);//所有的图片已经在ked_pic中,图片地址从ked_pic中取即可


System.out.println("aboutusurl:"+ked_pic.getAboutusurl());
System.out.println("BackUrl:"+ked_pic.getBackurl());
System.out.println("LogoUrl:"+ked_pic.getLogourl());

ArrayList<LunboPic> lists = ked_pic.getLunbos();
ArrayList<SmallPic> smallLists = ked_pic.getSmalls();
ArrayList<BigPic> bigLists = ked_pic.getBigs();
for(int i = 0;i < lists.size();i++){
String lunbo = lists.get(i).getLunboPic();//遍历list,lists.get(i)获得list的每个对象,.getLunboPic()取得每个对象的图片地址
System.out.println("轮播图pianyou:"+lunbo);
}
for(int i = 0;i < smallLists.size();i++){
String small = smallLists.get(i).getSmallPic();
System.out.println("产品小图:"+small);
}
for(int i = 0;i < bigLists.size();i++){
String big = bigLists.get(i).getBigPic();
System.out.println("产品大图:"+big);
}
 }


public class Mechine {

对应server端的Key
private String logourl;
private String backurl;
private String aboutusurl;
private ArrayList<LunboPic> lunbos;
private ArrayList<BigPic> bigs;
private ArrayList<SmallPic> smalls;//自动生成get和set方法,此处省略

}


public class LunboPic {
private String lunboPic;
//省略get与set方法
}

public class SmallPic {
private String smallPic;//对应数组

}

public class BigPic {
private String bigPic;

}

终于OK了!list取图片地址时候记得String lunbo = lists.get(i).getLunboPic();当时做的时候少些了getLunboPic()浪费了好多时间。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值