如何正確的解析json

如何正確的解析json


上面的鏈接是安卓解析json,看了感覺非常好,但是iOS卻沒找到一篇這么好的文章,于是決定自己研究一下,寫一版iOS版本的解析json。

一款軟件最重要的一步就是和服務器的交互,也就是解析服務器返回的數據,服務器返回的數據格式一般是json,而不是xml,因為json數據的體積小。然而解析json數據就顯得很重要了,讓這篇文章解決你的迷惑。

解析方法




解析json的方法很多,比如GSON等等,今天我們就用原始的JSONObject和JSONArray來解析Json數據。

格式一

[

{

"name": "zhangsan",

"age": "10",

"phone": "11111"

},

{

"name": "lisi",

"age": "20",

"phone": "22222"

}

...

]

格式解釋

帶有[ ]符號的,證明這個是一個數組(Array),帶有{}的,是一個Object,可以理解成對象,帶有””符號的,是String類型的數據。

解析技巧

[ ]類型的json用JSONArray來解析,{}類型的json用JSONObject來解析,” “類型的數據可直接getString就可以解析。

開始解析

格式二

{

"person": [

{

"name": "zhangsan",

"age": "10",

"phone": "11111"

},

{

"name": "lisi",

"age": "20",

"phone": "22222"

}

]

...

}

格式分析

注意,這個json數據最外層是object,而object內包含的是數組Array,還有一個鍵,那就是person,數組里有包含了多個object

開始解析

格式三

{

"code": 200,

"msg": "OK",

"person": [

{

"name": "zhangsan",

"age": "10",

"phone": "11111",

"email": "11111@11.com"

},

{

"name": "lisi",

"age": "20",

"phone": "22222",

"email": "22222@22.com"

}

]

...

}

格式分析

這種格式稍微復雜了點,有int類型的,有String類型的,也有object和Array

開始解析

格式四

{

"group": {

"user": {

"name": "張三",

"age": "10",

"phone": "11111",

"email": "11111@11.com"

},

"info": {

"address": "北京",

"work": "Android Dev",

"pay": "10K",

"motto": "先定一個小目標,比如我先賺一個億"

}

}

}

格式分析

這類json格式比上面的都稍微復雜一點,但是還是不是很復雜,對于一般的都不過是上面的這幾種方式,最外層的是object,里面包括的也是object,注意這個里面的object是有鍵的,鍵為group,然而group中又包含object,也是含有鍵的,是不是很刺激,還沒有完呢,user中又包含了String,天哪,要瘋了,no no,還沒有包含Array呢

開始解析

結束語

以上就是解析json數據的大多數情況,根本就不需要什么gson出馬呀,也能完全搞定,其實除了解析json數據外,有時候我們還會遇到在給服務器上傳數據的時候,服務器要求上傳json數據,臥槽,這怎么搞?沒事別著急,以后會推送方法的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容