如何正确的解析json

2016-10-19  本文已影响89人  白鹿Divella

如何正确的解析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数据,卧槽,这怎么搞?没事别着急,以后会推送方法的。

上一篇 下一篇

猜你喜欢

热点阅读