zoukankan      html  css  js  c++  java
  • 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解析谁还用官方的解析方法啊...

  • 相关阅读:
    Codeforces Beta Round #17 A
    Codeforces Round #382 (Div. 2) D. Taxes 哥德巴赫猜想
    Codeforces Round #382 (Div. 2)C. Tennis Championship 动态规划
    Codeforces Round #382 (Div. 2)B. Urbanization 贪心
    Codeforces Round #382 (Div. 2) A. Ostap and Grasshopper bfs
    Codeforces Beta Round #80 (Div. 2 Only)【ABCD】
    Codeforces Beta Round #62 题解【ABCD】
    Codeforces Round #160 (Div. 1) 题解【ABCD】
    Codeforces Round #383 (Div. 2) 题解【ABCDE】
    Codeforces Round #271 (Div. 2)题解【ABCDEF】
  • 原文地址:https://www.cnblogs.com/xmcx1995/p/5806383.html
Copyright © 2011-2022 走看看