Fastjsonプロローグ、反プログレッシブMapオブジェクトソート問題(文字列変換map、map変換文字列)
6114 ワード
背景
プロジェクトで出会ったfastjson json Objojojectについてstring乱序を変えて、stringはjson Object乱序の問題の解決案を回転します。
fastJson ises
問題の出所説明参照:https://github.com/alibaba/fastjson/issues/359 https://github.com/alibaba/fastjson/issues/954 【最終解答】
単ネストのMapプログレッシブと反シーケンスの問題
https://github.com/Arisono/Gradle-demo/blob/master/src/main/java/com/gradle/java/utils/FastJsonUtil.java
組み合わせのmap json、入れ子のmap jsonは問題を刺し連ねます。
このような形式:ギthub:https://github.com/Arisono QQ群:151909524 参考文献: fastjson並べ替えMap多層ネスティング変換自動ソート問題の最終解決策
プロジェクトで出会ったfastjson json Objojojectについてstring乱序を変えて、stringはjson Object乱序の問題の解決案を回転します。
fastJson ises
問題の出所説明参照:https://github.com/alibaba/fastjson/issues/359 https://github.com/alibaba/fastjson/issues/954 【最終解答】
単ネストのMapプログレッシブと反シーケンスの問題
JSONObject map=new JSONObject(true);// true,
map.put(" ","1");
map.put(" ","2");
map.put(" ","3");
map.put(" ","4");
map.put(" ","5");
OkhttpUtils.println(map.toString());// ,
OkhttpUtils.println(map.toString());
// , !!!
//JSONObject root=JSON.parseObject(map.toString());
LinkedHashMap root=JSON.parseObject(map.toString(),new TypeReference>(){} );// , map
OkhttpUtils.println(JSON.toJSONString(root));
// map , , JSONObject ,
// JSONObject json=new JSONObject(true);
// json.putAll(root);// map
Collection
プログラム印刷:【 45 】:{" ":"1"," ":"2"," ":"3"," ":"4"," ":"5"}
【 48 】:{" ":"1"," ":"2"," ":"3"," ":"4"," ":"5"}
【 51 】:{" ":"1"," ":"2"," ":"3"," ":"4"," ":"5"}
上記のコードはインスタンスプログラムを参照してください。https://github.com/Arisono/Gradle-demo/blob/master/src/main/java/com/gradle/java/utils/FastJsonUtil.java
組み合わせのmap json、入れ子のmap jsonは問題を刺し連ねます。
このような形式:
{"Format":"json","Name":"wwqqzz","Para":{"myuser":333,"mynum":"222", "mylist":[11,55,"33"]},"Reserved":{},"Type":"request","Version":"1.0"}
Feature.OrderedFieldは入れ子の多層mapを解決する時シーケンスの並べ替え問題を解決します。 LinkedHashMap<String, Object> rootStr=JSON.parseObject(mapStr.toString(),new TypeReferenceString, Object>>(){} ,Feature.OrderedField);
連絡先: