常用后端json處理方法


一、什么是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"));

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM