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

来源:互联网 发布:淘宝网论文降重可靠吗 编辑:程序博客网 时间:2024/05/17 06:16

关于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

原创粉丝点击