1. 程式人生 > >阿里Json之FastJson的簡單應用

阿里Json之FastJson的簡單應用

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");