この記事では主に Java での JSON データ (シリアル化および逆シリアル化データ) の生成と解析について紹介します。興味のある方は参考にしてください。
この記事では 2 つのポイントについて説明します:
1. fastjson は json データを生成および解析します
(例: JavaBean、List36ee8f7418bd46bbf580ced6560b65cf、Listf7e83be87db5cd2d9a8a0b8117b38cd4、List
(注: ここで、fastjson リフレクション メカニズムが gson よりも正確であることがわかります。id = 1001 は依然として id = 1001 です。 fastjson リフレクションと gson を介して JSONObject が {"JACKIE_ZHANG":"Jacky Cheung","ANDY_LAU" として定義されている場合、リフレクション結果は id =1001.0、JSON パーサー fastjson (Alibaba バージョン 1.1.26 によって作成) です。 ":"Andy Lau","LIMING" :"Dawn","Aaron_Kwok":"Aaron Kwok"} の場合、値を読み取るときに KEY の順序が狂います。テスト コード:
List<Person> listPerson =JSON.parseArray(jsonString, Person.class);
List<String> listString = JSON.parseArray(jsonString, String.class);解決策: JSONArray として定義され、コードは次のとおりです:
List<Map<String, Object>> listMap = JSON.parseObject(jsonString, new TypeReference<List<Map<String,Object>>>(){});実行結果は次のとおりです:
import comalibabafastjsonJSONObject; /** * Created by wangzhenfei on 14-4- */ public class FastJsonTest { public static void main(String[] args){ String jsonStr = "{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}" ; //做5次测试 for(int i=0,j=5;i<j;i++) { JSONObject jsonObject = JSONObjectparseObject(jsonStr) ; for(javautilMapEntry<String,Object> entry:jsonObjectentrySet()){ Systemoutprint(entrygetKey()+"-"+entrygetValue()+"\t"); } Systemoutprintln();//用来换行 } } }ではなく JSONObject として定義したい場合JSONArray、他の JSON パーサーを選択することもできます。個人的には Google の gson、ドキュメントを使用することをお勧めします。明らかに fastjson よりも優れています (ここから Alibaba と Google の間のギャップがわかります):
LIMING-黎明 Aaron_Kwok-郭富城JACKIE_ZHANG-张学友ANDY_LAU-刘德华 Aaron_Kwok-郭富城 ANDY_LAU-刘德华LIMING-黎明JACKIE_ZHANG-张学友 Aaron_Kwok-郭富城 JACKIE_ZHANG-张学友ANDY_LAU-刘德华LIMING-黎明 LIMING-黎明 ANDY_LAU-刘德华JACKIE_ZHANG-张学友Aaron_Kwok-郭富城 JACKIE_ZHANG-张学友 LIMING-黎明ANDY_LAU-刘德华Aaron_Kwok-郭富城実行結果:
import comalibabafastjsonJSONArray; /** * Created by wangzhenfei on 14-4- */ public class FastJsonTest { public static void main(String[] args){ String jsonStr = "[{\"JACKIE_ZHANG\":\"张学友\"},{\"ANDY_LAU\":\"刘德华\"},{\"LIMING\":\"黎明\"},{\"Aaron_Kwok\":\"郭富城\"}]" ; //做5次测试 for(int i=0,j=5;i<j;i++) { JSONArray jsonArray = JSONArrayparseArray(jsonStr); for(int k=0;k<jsonArraysize();k++){ Systemoutprint(jsonArrayget(k) + "\t"); } Systemoutprintln();//用来换行 } } }
以上がJSON データ (シリアル化データと逆シリアル化データ) を生成および解析する Java の fastjson の詳細な紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。