JSON 簡介
json (JavaScrip Object Notation) 是行業(yè)內(nèi)最為流行的數(shù)據(jù)傳輸格式,與開發(fā)語言無關(guān),相比xml,其輕量,解析方便,一目了然。
- 大多數(shù)服務(wù)端 API 用 JSON 作為返回格式
- 作為數(shù)據(jù)存儲(chǔ),比如數(shù)據(jù)庫
- 幾乎每門語言都有處理 json 的 api
- 易于人的閱讀和編寫
image.png
數(shù)據(jù)類型表示
①數(shù)據(jù)結(jié)構(gòu)
- Object
使用花括號(hào)包含的鍵值對(duì)結(jié)構(gòu), key 必須是 string 類型, value 為任何基本類型或數(shù)據(jù)結(jié)構(gòu) - Array
使用中括號(hào)來起始,并用逗號(hào)來分割元素
②基本類型
- string
- number
- true
- false
- null
例子( json 沒有注釋):
{
"name" : "MIneTea", //字符串
"age" : 18,//數(shù)字
"birthday" : "2000-01-01",
"school" : "SCNU",
"major" : ["subject1","subject2"],//數(shù)組
"has_girlfriend" : true,//布爾型
"car" : null,//null 值
......
}
Java 的 JSON 使用舉例
①導(dǎo)入相關(guān)包
②生成 JSONObject 對(duì)象 jsonObject
③使用該對(duì)象的 put 方法
jsonObject.put("name" , "MIneTea");
jsonObject.put("age" , 18);//鍵值對(duì)形式,對(duì)應(yīng) json 文件的花括號(hào)表達(dá)形式
Object null1 = null;
jsonObject.put("car",null1);//原本這里 null 會(huì)被當(dāng)成字符串,
//為了避免這個(gè)問題,聲明一個(gè) null 值的object類型即可
- 一般會(huì)通過 JavaBean 來構(gòu)建 JSON,即聲明一個(gè) JavaBean 類,里面有對(duì)應(yīng) JSON 鍵名的屬性,并提供大量的 get 和 set 方法對(duì)類中的屬性進(jìn)行獲取和設(shè)置,這樣,創(chuàng)建一個(gè)新的 JSON 對(duì)象時(shí),通過設(shè)置這個(gè) JavaBean 的對(duì)象為參數(shù),就可以創(chuàng)建擁有相應(yīng)鍵值對(duì)的 JSON 對(duì)象了。
解析 JSON
獲取 JSON 數(shù)據(jù)流后,要進(jìn)行解析,方法有:
①獲取文件,還要知道對(duì)應(yīng)的數(shù)據(jù)類型
②創(chuàng)建 json 時(shí)設(shè)置構(gòu)造函數(shù)的參數(shù)為這個(gè)文件數(shù)據(jù)
③使用 getString("key") 等方法獲取相應(yīng)數(shù)據(jù)類型