fastJson 處理 json

fastJson 是阿里巴巴 開源的json處理工具。使用面向對象與註解的方式,很容易使用。

兩個基本的方法:
對象序列化爲json串   String jsonStr = JSON.toJSONString(obj);
json串反序列化爲對象:Object obj = JSON.parseObject(jsonStr,Object.class);   //Object 可以爲任意對象

實體類映射實例:
1.使用註解配置實體對象
ordinal 爲順序,越小則排列越前,不配置的話則按默認排序,與字段排序不一致。
其中進行了組合,包括組合list

	@JSONField(ordinal=9)
	private MainVo main;    //引入另外一個實體對象,其中同樣配置
	@JSONField(ordinal=10)
	private String AppliName;
	@JSONField(ordinal=20)
	private String AppliIdNo;
	@JSONField(ordinal=30,format = "yyyy-MM-dd hh:mm:ss") 
	private Date startDate;
	@JSONField(ordinal=40)
	private double Premium;
	@JSONField(ordinal=50)
	private List<ItemKindVo> itemKindList;  //引入實體對象集合,fastJSON將其處理爲數組

2. 序列化和反序列化

//序列化爲json字符

@Test
public void json4() {
	PolicyVo policyVo = new PolicyVo("cai","1231",new Date(),100.89);
	ItemKindVo itemKindVo = new ItemKindVo("水","er",1,100,new Date());
	ItemKindVo itemKindVo2 = new ItemKindVo("菜","er",1,100,new Date());
	List<ItemKindVo> list = new ArrayList<ItemKindVo>();
	list.add(itemKindVo);  
	list.add(itemKindVo2); 
	policyVo.setItemKindList(list);
	MainVo main = new MainVo("20000000000001","主");
	policyVo.setMain(main);
	
	String jsonStr = JSON.toJSONString(policyVo);   //根據對象進行序列化
	System.out.println(jsonStr);
}

//輸出結果爲
{"main":{"main1":"主","policyno":"20000000000001"},"appliName":"cai","appliIdNo":"1231","startDate":"2020-05-06 02:34:07","premium":100.89,"itemKindList":[{"kindName":"水","itemName":"er","quantity":1.0,"premium":100.0,"date":"2020-05-06 02:34:07"},{"kindName":"菜","itemName":"er","quantity":1.0,"premium":100.0,"date":"2020-05-06 02:34:07"}]}
//Json字符串反序列化爲對象

@Test
public void json5() {
	String jsonStr ="{\"appliIdNo\":\"1231\",\"startDate\":\"2020-05-06 11:20:43\",\"premium\":100.89,\"itemKindList\":[{\"kindName\":\"水稻\",\"itemName\":\"er\",\"quantity\":1.0,\"premium\":100.0,\"date\":\"2020-05-06 11:20:43\"},{\"kindName\":\"蔬菜\",\"itemName\":\"er\",\"quantity\":1.0,\"premium\":100.0,\"date\":\"2020-05-06 11:20:43\"}]}\r\n" + 
			"";
	PolicyVo policyVo = JSON.parseObject(jsonStr,PolicyVo.class);  //反序列化操作
	System.out.println(policyVo); 
}

 

對象操作:

JSONObject  與  JSONArray
JSONObject  將 json串轉換爲對象進行操作
JSONArray 將 json串轉換爲多個JSONObject對象  進行操作

JSONObject jsonObject = JSON.parseObject(jsonStr);  // 字符轉對象
String appliName  = jsonObject.getString("appliName");  //根據key獲取內容,內容也可是部分json串
JSONArray array = JSON.parseArray(itemKindList);  //字符轉對象數組
JSONObject j2 = array.getJSONObject(0);  // 通過下標獲取對象

實例:

JSONObject jsonObject = JSON.parseObject(jsonStr);  //  將json字符串 轉換爲JSONObject
String appliName  = jsonObject.getString("appliName");  //根據Key獲取對應內容
System.out.println(appliName);

String jsonmain  = jsonObject.getString("main");  //獲取其中的部分json
JSONObject jsonObjectmain = JSON.parseObject(jsonmain);  //  將json字符串 轉換爲JSONObject
String main1 = jsonObjectmain.getString("main1"); //根據Key獲取對應內容
System.out.println(main1);

String itemKindList  = jsonObject.getString("itemKindList");  //獲取其中的部分json  這部分是個數組
JSONArray array = JSON.parseArray(itemKindList);
JSONObject j2 = array.getJSONObject(0);  // 通過下標獲取對象
String kindName  = j2.getString("kindName");   //根據Key獲取對應內容
System.out.println(kindName);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章