上面的链接是安卓解析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数据,卧槽,这怎么搞?没事别着急,以后会推送方法的。