天天看點

解析JSON的三種方式

JSONObject  

JSONObject jsonObject = new JSONObject(strJson);
   JSONArray jsonArray = jsonObject.getJSONArray("data");      

{}  Jsonstr      bean      bean1....

[]

大括号{} Gson gson = new Gson(); bean  b1 = gson.fromJson(Jsonstr,bean.class)

中括号[]:  Gson gson = new Gson();

List<bean>  list = gson.fromJson(jsonString, new TypeToken<List<bean.class>>() {}.getType());

Gson:

使用泛型擷取javaBean(核心函數)

(1),對象類型資料 public static <T> T getPerson(String jsonString, Class<T> cls) {

          T t = null;

          try {

               Gson gson = new Gson();

            t = gson.fromJson(jsonString, cls);

          } catch (Exception e) {

               // TODO: handle exception

          }

          return t;

     }

(2),集合類型資料

public static <T> List<T> getPersons(String jsonString, Class<T> cls) {

          List<T> list = new ArrayList<T>();

          try {

              Gson gson = new Gson();

            list = gson.fromJson(jsonString, new TypeToken<List<cls>>() {

            }.getType());

          } catch (Exception e) {

          }

          return list;

     } (3),集合中含map類型資料

public static List<Map<String, Object>> listKeyMaps(String jsonString) {

          List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();

          try {

               Gson gson = new Gson();

            list = gson.fromJson(jsonString,

                    new TypeToken<List<Map<String, Object>>>() {

                    }.getType());

          } catch (Exception e) {

               // TODO: handle exception

          }

          return list;

     }

eg:

public static Mode getJson2(String json){

    Gson gson = new Gson();
    Mode mode = gson.fromJson(json, Mode.class);

    return  mode;
}      

FastJson:

(1),集合類型資料  List<T> datas = JSON.parseArray(str,T.class):解析一個數組    {jsonArray} [,,,,,,] (2),對象類型資料   T t = JSON.parseObject(str,T.class):解析一個對象  {jsonObject}  {}

FastJson對象的知識點:

fastjson 是一個性能極好的用 Java 語言實作的 JSON 解析器和生成器,來自 阿裡巴巴的工程師開發。

主要特點:

  • 快速FAST (比其它任何基于Java的解析器和生成器更快,包括jackson)
  • 強大(支援普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
  • 零依賴(沒有依賴其它任何類庫除了JDK)

一 、生成Json: JavaBean、List<JavaBean>、List<String>、List<Map<String,Object>>

  1. String jsonString = JSON.toJSONString(obj);  

二、解析Json: (1)JavaBean             Class class= JSON.parseObject(jsonString, Class.class);   (2)List<JavaBean             List<Class> class=JSON.parseArray((jsonString, Class.class);   (3)List<String>             List<String> listString = JSON.parseArray(jsonString, String.class);   (4)List< Map<String,Object> >         List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new                                TypeReference<List<Map<String,Object>>>(){});  

轉載于:https://www.cnblogs.com/muyuge/p/6152281.html