使用javabean解析Json简单嵌套的方法

解析Json格式的数据,一般使用javabean方法。何为javabean,其最小单元如下:

public class PostEntity {
private String title;
private String content;

public String getTitle(){
return title;
}
public String getContent(){
return content;
}

public void setTitle(String title){
this.title = title;
}
public void setContent(String content) {
this.content = content;
}
}
通过上述代码很容易就能看出来了,就是包含get和set方法。通过上述最小单元,解析单一的Json数据是够用了的,但是我们平时接口返回的数据多是嵌套的格式,即键值对中包含键值对,如下:

{
"res_code": 1,
"res_data": {
"waitAccount": 10000,
"mostAccount": 10000
},
"res_msg": "success"
}

解析此类Json的思路应该是先将一个{}中的数据封装在一个class中,如下:

public static class TRes_data{

private Integer waitAccount;
private Integer mostAccount;

public void setWaitAccount(Integer value){
this.waitAccount = value;
}
public Integer getWaitAccount(){
return this.waitAccount;
}

public void setMostAccount(Integer value){
this.mostAccount = value;
}
public Integer getMostAccount(){
return this.mostAccount;
}
}
将该class看作res_data的一个值:
private TRes_data res_data;  /*TRes_data*/
private Integer res_code; /*1*/

public void setRes_data(TRes_data value){
this.res_data = value;
}
public TRes_data getRes_data(){
return this.res_data;
}

public void setRes_code(Integer value){
this.res_code = value;
}
public Integer getRes_code(){
return this.res_code;
}
形式就变成了javabean的最小单元,特殊形式的问题就解决了。

然后就是来解析该Json了,直接上代码:
public static void main(String[] args){
String jason = "[{
    "res_code": 1,
    "res_data": {
    "waitAccount": 10000,
    "mostAccount": 10000
}
}]";

List<InvestDetail> list = JSON.parseArray(jason,InvestDetail.class); //使用的是fastJson
for (InvestDetail detail : list){
System.out.println("Res_code:" + detail.getRes_code() + "LowestAccount:" + detail.getRes_data().getLowestAccount());
}
}

这样就可以顺利解析嵌套在里面的Json值了。

 



posted @ 2017-08-13 17:38  lanrones  阅读(1364)  评论(0编辑  收藏  举报