认识JSON数据和ios中JSON解析
认识json
1. 最外层要么是{},要么是[];,{}表示解析出来之后是字典,[]表示解析出来之后是数组{}:必须是键值对,及时value是一个字典或数组,也需要有key值
[]:不能有键值对,里面可以是数组,也可以是字典,但是无论是什么都只有value值
2. 把以下数据还原
{[],[{{},{}}]}
分析:
1)最外层是个字典,所以里面以“,”分割不同的键值对,里面有一个“,”,所以说有两个键值对,第一个value是数组,第二个也是数组,所以还原后如下
{key1:[],key2:[{{},{}}]}
2)”key1:[]”,value是一个数组,里面最好用字典表示,此形式里面没有数组和字典,应该是单纯的字符串,所以还原如下
{key1:[v1,v2,v3],key2:[{{},{}}]}
3)分析key2同上,还原后的数据格式如下:
{key1:[v1,v2,v3],key2:[{key3:{key31:v31},key4:{key41,v41}}]}
iOS中json解析
1.目前服务器返回的数据多是JSON格式的数据,原因是JSON数据是键值对,而不是标签对,所以可以减少网络通讯过程中冗余数据1)可以用NSJSONSerialization来解析,也可以用SBJSON等第三方库来解析
2)要使用这些JSON数据,一般分情况
如果数据量比较小,可以用NSUserDefaults直接存,或者作为本类的一个属性
如果数据量比较大,例如作为表的数据源,那么具体的每条数据需要创建成一个对象,最终把对象方法到数组或字典中,注意:这种情况,在设计对象的初始化方法的时候,不是直接通过参数传递属性,而是直接把字典中得数据传递给对象的初始化方法,这样更有利于将来的扩充或修改(不是initWithProperty:,而是initWithDictionary:)
2. 客户端也可以给服务器发送JSON数据,只需要把已有的字典或者是数据转换成JSON字符串即可