包含多集合的json反序列化

来源:互联网 发布:越南旅游 知乎 编辑:程序博客网 时间:2024/04/30 12:49

json字符串的格式如下:

java中json格式:

String jsonobject = "[{\"hdid\":\"hdid01\",\"hdbt\":\"活动\",\"hdms\":\"开服奖励丰厚\",\"hdtiaojian\":[{\"hdtjid\":\"hdtiaojianid01\",\"hdtjnr\":\"杀死10个人\"}],\"hdjiangli\":[{\"hdjiangliid\":\"hdjiangliid01\",\"hdjianglinr\":\"200元充值卡移动\"}]}]";

在线格式化地址:http://www.bejson.com/

格式化后:

{    [        "hdid": "hdid01",        "hdbt": "活动",        "hdms": "开服奖励丰厚",        "hdtiaojian": [            {                "hdtjid": "hdtiaojianid01",                "hdtjnr": "杀死10个人"            }        ],        "hdjiangli": [            {                "hdjiangliid": "hdjiangliid01",                "hdjianglinr": "200元充值卡移动"            }        ]    ]}

java中的Model类:

活动类:

package json.more.po;import java.util.List;public class HuoDong {private String hdid;/*活动id*/private String hdbt;/*活动标题*/private String hdms;/*活动描述*//*活动条件*/private List<HDTiaoJian> hdtiaojian;/*活动奖励*/private List<HDJiangLi> hdjiangli;@Overridepublic String toString() {return "HuoDong [hdid=" + hdid + ", hdbt=" + hdbt + ", hdms=" + hdms+ ", hdtiaojian=" + hdtiaojian + ", hdjiangli=" + hdjiangli+ "]";}public String getHdid() {return hdid;}public void setHdid(String hdid) {this.hdid = hdid;}public String getHdbt() {return hdbt;}public void setHdbt(String hdbt) {this.hdbt = hdbt;}public String getHdms() {return hdms;}public void setHdms(String hdms) {this.hdms = hdms;}public List<HDTiaoJian> getHdtiaojian() {return hdtiaojian;}public void setHdtiaojian(List<HDTiaoJian> hdtiaojian) {this.hdtiaojian = hdtiaojian;}public List<HDJiangLi> getHdjiangli() {return hdjiangli;}public void setHdjiangli(List<HDJiangLi> hdjiangli) {this.hdjiangli = hdjiangli;}}

活动条件:

package json.more.po;public class HDTiaoJian {private String hdtjid;/*活动条件id*/private String hdtjnr;/*活动条件内容*/@Overridepublic String toString() {return "HDTiaoJian [hdtjid=" + hdtjid + ", hdtjnr=" + hdtjnr + "]";}public String getHdtjid() {return hdtjid;}public void setHdtjid(String hdtjid) {this.hdtjid = hdtjid;}public String getHdtjnr() {return hdtjnr;}public void setHdtjnr(String hdtjnr) {this.hdtjnr = hdtjnr;}}

活动奖励:

package json.more.po;public class HDJiangLi {private String hdjiangliid;/*活动奖励id*/private String hdjianglinr;/*活动奖励内容*/@Overridepublic String toString() {return "HDJiangLi [hdjiangliid=" + hdjiangliid + ", hdjianglinr="+ hdjianglinr + "]";}public String getHdjiangliid() {return hdjiangliid;}public void setHdjiangliid(String hdjiangliid) {this.hdjiangliid = hdjiangliid;}public String getHdjianglinr() {return hdjianglinr;}public void setHdjianglinr(String hdjianglinr) {this.hdjianglinr = hdjianglinr;}}

测试类:

package json.more.test;import java.util.List;import json.more.po.HuoDong;import com.google.gson.Gson;import com.google.gson.reflect.TypeToken;public class Test {String jsonobject = "[{\"hdid\":\"hdid01\",\"hdbt\":\"活动\",\"hdms\":\"开服奖励丰厚\",\"hdtiaojian\":[{\"hdtjid\":\"hdtiaojianid01\",\"hdtjnr\":\"杀死10个人\"}],\"hdjiangli\":[{\"hdjiangliid\":\"hdjiangliid01\",\"hdjianglinr\":\"200元充值卡移动\"}]}]";/** * 反序列化 */public void jsonToObject(){Gson gs = new Gson();//ActionForm af = gs.fromJson(resource, ActionForm.class);//List<Prop> afs = gs.fromJson(resource,new TypeToken<List<Prop>>(){}.getType());List<HuoDong> hds = gs.fromJson(jsonobject, new TypeToken<List<HuoDong>>(){}.getType());System.out.println(hds);}public static void main(String[] args) {new Test().jsonToObject();}}

结果:

[HuoDong [hdid=hdid01, hdbt=活动, hdms=开服奖励丰厚, hdtiaojian=[HDTiaoJian [hdtjid=hdtiaojianid01, hdtjnr=杀死10个人]], hdjiangli=[HDJiangLi [hdjiangliid=hdjiangliid01, hdjianglinr=200元充值卡移动]]]]

这里使用到的Gson下载地址:

http://code.google.com/p/google-gson/downloads/list

搞定了:如果有不对的地方希望您指出。谢谢

0 0