Gson的使用

Gson(又称Google Gson)是Google公司发布的一个开放源代码的Java库,主要用途为序列化Java对象为JSON字符串,或反序列化JSON字符串成Java对象。——维基百科

Gson包的下载地址

相对于较为传统的Json解析来说,Gson在解析速度和所使用的内存在有着明显的优势。

Gson的应用主要为toJson与fromJson两个转换函数,而在使用这种对象转换之前需先创建好对象的类以及其成员才能成功的将JSON字符串成功转换成相对应的对象。

toJson方法就是讲对象类里面的内容转换为Json内容,fromJson就是从Json解析出一个类对象。

/**
 * Bean类,内容和JSon数据类型一一对应
 */
public class Info {

	private int mId;
	private String mName;

	public int getId() {
		return mId;
	}

	public void setId(int id) {
		this.mId = id;
	}

	public String getName() {
		return mName;
	}

	public void setName(String name) {
		this.mName = name;
	}

	public Info(int id, String name) {
		this.mId = id;
		this.mName = name;
	}

	public String getInfo() {
		return "mId = " + this.mId + " mName = " + mName;
	}
}
void testGson() {
	Info info = new Info(123, "shawn");
	Gson gson = new Gson();
	String gsonString = gson.toJson(info);
	System.out.println(gsonString);
	Info info2 = gson.fromJson(gsonString, Info.class);
	System.out.println(info2.getInfo());
}
测试结果为:

{"mId":123,"mName":"shawn"}
mId = 123 mName = shawn

Gson还可以承担一些复杂的操作,比如通过集合插入一组数据,以及从Json解析出一组数据。

void testGsonList() {
	List<Info> infos = new ArrayList<Info>();
	infos.add(new Info(111, "Tom"));
	infos.add(new Info(112, "Jack"));
	infos.add(new Info(113, "Jane"));

	Gson gson = new Gson();
	String gsonString = gson.toJson(infos);
	System.out.println(gsonString);

	Type lt = new TypeToken<List<Info>>() {
	}.getType();
	List<Info> infos2 = gson.fromJson(gsonString, lt);
	
	for (Info info2 : infos2)
		System.out.println(info2.getInfo());
}

测试结果为:

[{"mId":111,"mName":"Tom"},{"mId":112,"mName":"Jack"},{"mId":113,"mName":"Jane"}]
mId = 111 mName = Tom
mId = 112 mName = Jack
mId = 113 mName = Jane


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值