Java-->Gson解析相较于Json

--> Gson解析jar包:  链接:http://pan.baidu.com/s/1slCeq77 密码:f9ig

--> 官方Json解析工具类:

 1 package com.dragon.java.jsonwebdata;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.json.JSONArray;
 7 import org.json.JSONException;
 8 import org.json.JSONObject;
 9 
10 /**
11  * Json解析的工具类
12  * 
13  * @author Auser
14  * 
15  */
16 public class JsonUtil {
17     /**
18      * 官方解析方法 --> 不管多复杂都可以解析,但是非常复杂!!!
19      * 
20      * @param json
21      */
22     public static void jsonParse(String json) {
23         List<Detail> details = new ArrayList<>();
24         try {
25             JSONObject object = new JSONObject(json);
26             if (object.getString("status").equals("000000")) {
27                 if (object.getString("desc").equals("null")) {
28                     details = JSONArray(details, object);
29                     for (Detail detail : details) {
30                         System.out.println(detail);
31                     }
32                 }
33             }
34         } catch (JSONException e) {
35             e.printStackTrace();
36         }
37     }
38 
39     /**
40      * Json数组
41      * 
42      * @param details
43      * @param object
44      * @return List<Detail>
45      * @throws JSONException
46      */
47     private static List<Detail> JSONArray(List<Detail> details,
48             JSONObject object) throws JSONException {
49         JSONArray array = object.getJSONArray("detail");
50         for (int i = 0; i < array.length(); i++) {
51             JSONObject object2 = array.getJSONObject(i);
52             int id = object2.getInt("id");
53             int xhid = object2.getInt("xhid");
54             String author = object2.getString("author");
55             String content = object2.getString("content");
56             String picUrl = object2.getString("picUrl");
57             String status = object2.getString("status");
58             Detail detail = new Detail(id, xhid, author, content, picUrl,
59                     status);
60             details.add(detail);
61         }
62         return details;
63     }
64 }

--> Gson解析工具类:

--> 需要一个Data类 包括:

private String status;
private String desc;
private List<Detail> detail;

且必须有无参构造方法和属性的getter、setter方法

 1 package com.dragon.java.gsonwebdata;
 2 
 3 import java.util.List;
 4 
 5 import com.dragon.java.jsonwebdata.Detail;
 6 import com.google.gson.Gson;
 7 
 8 /*
 9  * Gson解析的工具类
10  */
11 public class GsonUtil {
12 
13     /**
14      * Gson解析
15      * 
16      * @param json
17      */
18     public static void gsonParse(String json) {
19         Gson gson = new Gson();
20         Info info = gson.fromJson(json, Info.class);
21         List<Detail> detail = info.getDetail();
22         if (info.getStatus().equals("000000")) {
23             if (info.getDesc() == null) {
24                 for (Detail detail2 : detail) {
25                     System.out.println(detail2);
26                 }
27             }
28         }
29     }
30 }

--> 有Gson解析谁还用官方的解析方法啊...

posted on 2016-08-25 13:09  西门吃雪  阅读(378)  评论(0编辑  收藏  举报

导航