上面的鏈接是安卓解析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數據,臥槽,這怎么搞?沒事別著急,以后會推送方法的。