一、什么是json?
json本來是javascript里的內容,有時后端要傳各種各樣的數據格式來適應前端,所以需要用到json來轉換,用它來表示各種各樣復雜的數據,如對象,數組,集合,以及集合的集合等數據。
json是一種輕量級的前端后端以及網絡傳輸的數據交換格式,就是一串字符串,只不過元素會使用特定的符號標注。 {} 雙括號表示對象,[] 中括號表示數組,”” 雙引號內是屬性或值,: 冒號表示后者是前者的值(這個值可以是字符串、數字、也可以是另一個數組或對象)。
在后端可以把一個字符串,然后通過json來轉換成特定的字符串傳到前端去 。
二、為什么要用json?
易於解析這種語言, 客戶端JavaScript可以簡單的通過eval()進行JSON數據的解析,通過遍歷數組以及訪問對象屬性來獲取數據。
三、一些常見的json格式
1.JSON對象——JSONObject
var json={"name":"張三" , "age":18 }; var json={"name":"張三", "age"=18,"address":{"street":"湖南", "city":長沙","country":"中國"}};
2、JSON數組——JSONArray
var json=[{"name":"張三" , "age":18 },{"name":"李四" , "age":20 }]; var json=[ {"name":"張三", "age"=18, "address":{"street":"湖南", "city":"長沙","country":"中國"}}, {"name":"李四", "age"=20, "address":{"street":"湖南", "city":"張家界","country":"中國"}} ]
3、
var json={"abc":[{"name":"txt1"},{"name","txt2"}]}; //{}里面的是一個對象
四、后端常用處理json方法
fastjson 是一個性能很好的 Java 語言實現的 JSON 解析器和生成器,來自阿里巴巴的工程師開發。
JSON.parseObject(String str)是將str轉化為相應的JSONObject對象
JSON.parseObject(String str)與JSONObject.parseObject(String str)的區別:JSON是一個抽象類,JSON中有一個靜態方法parseObject(String text),將text解析為一個JSONObject對象並返回;JSONObject是一個繼承自JSON的類,當調用JSONObject.parseObject(result)時,會直接調用父類的parseObject(String text)。所以兩者沒什么區別,一個是用父類去調用父類自己的靜態的parseObject(String text),一個是用子類去調用父類的靜態parseObject(String text),兩者調的是同一個方法。
//json字符串轉換為對象 jsonString = "{\"result\":\"success\",\"message\":\"成功!\"}"; //或jsonString = "{'idcard':'42313123','id':'2345'}"; jsonObject = JSONObject.parseObject(jsonString); JSONArray jsonArray = JSONArray.parseArray(jsonObject.getString("data")); //json字符串轉換為map Map<String,String> map = JSONObject.parseObject(jsonString, Map.class); //JSONObject轉換為json字符串 String jsonstr=JSON.toJSONString(jsonObject); //將String轉換成JSONArray,先轉為JSONObject,再將[]部分轉為JSONArray String str1 = "{\"result\":\"success\",\"message\":\"成功!\",\"data\":[{\"name\":\"Tom\",\"age\":\"20\"}]}"; //data的value可以轉為Array JSONObject json = JSONObject.parseObject(str1); JSONArray jsonArray = JSONArray.parseArray(json.getString("data"));