處理json資料格式各種轉換
阿新 • • 發佈:2018-12-09
JSON的全稱是”JavaScript Object Notation”,意思是JavaScript物件表示法,JSON是特別重要的輕量級的資料交換格式,比XML傳輸資料更加方便,它是基於JavaScript的一個子集,是用嚴格的JavaScript物件表示法表示結構化的資料。 JSON只是一種資料格式的規範,因此準確的叫法應該是:使用JSON格式的JS物件。
語法:
- 資料在名稱/值對中
- 資料由逗號分隔
- 花括號儲存物件
- 方括號儲存陣列
JSON 資料的書寫格式是:名稱/值對,名稱/值對組合中的名稱寫在前面(在雙引號中),值對寫在後面(同樣在雙引號中),中間用冒號隔開。
json物件就是json的值,基本要符合以下規則
- 複合型別的值只能是陣列或物件,不能是函式、正則表示式物件、日期物件。
- 簡單型別的值只有四種:字串、數值(必須以十進位制表示)、布林值和null
- 字串必須使用雙引號表示,不能使用單引號
- 物件的鍵名必須放在雙引號裡面
- 陣列或物件最後一個成員的後面,不能加逗號
JSON有2個靜態方法:JSON.parse用來將JSON字串反序列化成物件,JSON.stringify用來將物件序列化成JSON字串
// 這是JSON字串 var strJson = '{ "prop": "val" }'; // 將字串反序列化成物件 var objJson = JSON.parse(strJson); // 將物件序列化成JSON字串 var otherStrJson= JSON.stringify(objJson);
處理json資料格式的工具類:
package com.itheima.utils; import java.util.List; import java.util.Map; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import net.sf.json.JsonConfig; import net.sf.json.util.CycleDetectionStrategy; import net.sf.json.xml.XMLSerializer; /** * 處理json資料格式的工具類 * */ public class JsonUtil { /** * 將陣列轉換成String型別的JSON資料格式 * * @param objects * @return */ public static String array2json(Object[] objects){ JSONArray jsonArray = JSONArray.fromObject(objects); return jsonArray.toString(); } /** * 將list集合轉換成String型別的JSON資料格式 * * @param list * @return */ public static String list2json(List list){ JSONArray jsonArray = JSONArray.fromObject(list); return jsonArray.toString(); } /** * 將map集合轉換成String型別的JSON資料格式 * * @param map * @return */ public static String map2json(Map map){ JSONObject jsonObject = JSONObject.fromObject(map); return jsonObject.toString(); } /** * 將Object物件轉換成String型別的JSON資料格式 * * @param object * @return */ public static String object2json(Object object){ JSONObject jsonObject = JSONObject.fromObject(object); return jsonObject.toString(); } /** * 將XML資料格式轉換成String型別的JSON資料格式 * * @param xml * @return */ public static String xml2json(String xml){ JSONArray jsonArray = (JSONArray) new XMLSerializer().read(xml); return jsonArray.toString(); } /** * 除去不想生成的欄位(特別適合去掉級聯的物件) * * @param excludes * @return */ public static JsonConfig configJson(String[] excludes) { JsonConfig jsonConfig = new JsonConfig(); jsonConfig.setExcludes(excludes); jsonConfig.setIgnoreDefaultExcludes(true); jsonConfig.setCycleDetectionStrategy(CycleDetectionStrategy.LENIENT); return jsonConfig; } }