包含多集合的json反序列化

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;

	@Override
	public 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;/*活动条件内容*/
	
	@Override
	public 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;/*活动奖励内容*/
	
	@Override
	public 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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值