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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容