Android 使用GSON解析JSON 并转换为JAVA对象

关于JSON的介绍(摘自:http://www.oschina.net/p/google-json):

Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。

示例代码:

Gson gson = new Gson();
int[] ints = {1, 2, 3, 4, 5};
String[] strings = {"abc", "def", "ghi"};

(Serialization)
gson.toJson(ints);     ==> prints [1,2,3,4,5]
gson.toJson(strings);  ==> prints ["abc", "def", "ghi"]

示例:

获取到的JSON数据如下:

{"data":[{"area_id":3,"parent_id":2,"area_name":"\u4e1c\u57ce\u533a","sort":99},{"area_id":19,"parent_id":2,"area_name":"\u5bc6\u4e91\u53bf","sort":99},{"area_id":18,"parent_id":2,"area_name":"\u5e73\u8c37\u533a","sort":99},{"area_id":17,"parent_id":2,"area_name":"\u6000\u67d4\u533a","sort":99},{"area_id":16,"parent_id":2,"area_name":"\u5927\u5174\u533a","sort":99},{"area_id":15,"parent_id":2,"area_name":"\u660c\u5e73\u533a","sort":99},{"area_id":14,"parent_id":2,"area_name":"\u987a\u4e49\u533a","sort":99},{"area_id":13,"parent_id":2,"area_name":"\u901a\u5dde\u533a","sort":99},{"area_id":12,"parent_id":2,"area_name":"\u623f\u5c71\u533a","sort":99},{"area_id":11,"parent_id":2,"area_name":"\u95e8\u5934\u6c9f\u533a","sort":99},{"area_id":10,"parent_id":2,"area_name":"\u6d77\u6dc0\u533a","sort":99},{"area_id":9,"parent_id":2,"area_name":"\u77f3\u666f\u5c71\u533a","sort":99},{"area_id":8,"parent_id":2,"area_name":"\u4e30\u53f0\u533a","sort":99},{"area_id":7,"parent_id":2,"area_name":"\u671d\u9633\u533a","sort":99},{"area_id":4,"parent_id":2,"area_name":"\u897f\u57ce\u533a","sort":99},{"area_id":20,"parent_id":2,"area_name":"\u5ef6\u5e86\u53bf","sort":99}],"ret":0}
1、构造对象
// 构造INFO对象,其中sort、area_id、parent_id、area_name需要与JSON的key相同
public class Info {
	
	private String sort = "";
	private String area_id = "";
	private String parent_id = "";
	private String area_name = "";

	public String getArea_id() {
		return area_id;
	}

	public void setArea_id(String area_id) {
		this.area_id = area_id;
	}

	public String getParent_id() {
		return parent_id;
	}

	public void setParent_id(String parent_id) {
		this.parent_id = parent_id;
	}

	public String getArea_name() {
		return area_name;
	}

	public void setArea_name(String area_name) {
		this.area_name = area_name;
	}

	public String getSort() {
		return sort;
	}

	public void setSort(String sort) {
		this.sort = sort;
	}

}

2、解析JSON并转换为INFO对象代码

				String nani = EntityUtils.toString(response.getEntity(),
						"UTF-8");

				JSONObject object = new JSONObject(nani);
				String array = object.get("data").toString();
				Gson gson = new Gson();

				Type type = new TypeToken<List<Info>>() {
				}.getType();

				List<Info> haha = gson.fromJson(array, type);
				for (Info stu : haha) {
					Log.v("Fover", stu.getArea_name());
				}


当然您还需要做的就是导入GSON的JAR包了。

下载地址:http://code.google.com/p/google-gson/downloads/list

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值