阿里Json之FastJson的簡單應用
阿新 • • 發佈:2018-12-01
1.FastJson的介紹:
JSON協議使用方便,越來越流行,JSON的處理器有很多,這裡我介紹一下FastJson,FastJson是阿里的開源框架,被不少企業使用,是一個極其優秀的Json框架,Github地址: FastJson
1.2.FastJson的特點:
1.FastJson數度快,無論序列化和反序列化,都是當之無愧的fast
2.功能強大(支援普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)
3.零依賴(沒有依賴其它任何類庫)
1.3.FastJson的簡單說明:
FastJson對於json格式字串的解析主要用到了下面三個類:
1.JSON:fastJson的解析器,用於JSON格式字串與JSON物件及javaBean之間的轉換
2.JSONObject:fastJson提供的json物件
3.JSONArray:fastJson提供json陣列物件
2.簡單用法
//簡單的字串 private static String json= "{\"name\":\"slm\",\"age\":12}"; //json字串-陣列型別 private static final String jsonArray = "[{\"name\":\"slm\",\"age\":12},{\"name\":\"lisi\",\"age\":15}]"; //複雜格式json字串 private static final String jsonMore= "{"areacode":"江蘇省連雲港市","countAll":0,"countCorrect":0,"datatime":"4408097","logid":"201604181600001249944032","requestinfo":"{\"sign\":\"4\",\"timestamp\":\"1460966395908\",\"remark\":\"4\",\"subjectPro\":\"123456\",\"interfaceUserName\":\"12345678900987654321\",\"channelno\":\"100\",\"imei\":\"12345678900987654321\",\"subjectNum\":\"18361451463\",\"imsi\":\"12345678900987654321\",\"queryNum\":\"18361451463\"}","requestip":"58.223.4.210","requesttime":"2016-04-18 16:00:00","requesttype":"0","responsecode":"010005","responsedata":"無查詢結果"}"
2.1json字串-簡單物件型與JSONObject之間的轉換
JSONObject jsonObject = JSONObject.parseObject(json); //獲取name String name= jsonObject .getString("name"); //獲取age String age= jsonObject .getString("age"); System.out.println(name+","+age) JSONObject jsonObject = JSONObject.parseObject(json); String name= jsonObject .getString("name"); //直接轉換成json字串 String jsonString=JSONObject.toJSONString(jsonObject);
2.2 json字串(陣列型別)與JSONArray之間的轉換
//已知JSONArray,目標要轉換為json字串
JSONArray jsonArray 1= JSONArray.parseArray(jsonArray );
String jsonString = JSONArray.toJSONString(jsonArray1);
// System.out.println(jsonString);
for (int i = 0; i < jsonArray1.size(); i++) {
JSONObject jsonObject = jsonArray1.getJSONObject(i);
System.out.println("name: " + jsonObject.getString("name") + ":" + " age: "
+ jsonObject.getInteger("aAge"));
}
2.3複雜json格式字串與JSONObject之間的轉換
JSONObject object = JSON.parseObject(jsonMore);
//第一次獲取的還是一個json型別的資料
//還需要進一步獲取
String object2 = (String)object.get("requestinfo");
JSONObject ss = JSON.parseObject(object2);
String imei = ss.getString("imei");
//通過get可以直接獲取資料
String areacode = (String) object.get("areacode");
String responsedata = (String) object.get("responsedata");
String requestip = (String) object.get("requestip");