码迷,mamicode.com
首页 > Web开发 > 详细

JSON数据解析

时间:2015-09-12 12:08:55      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:

一、数据结构({}为字典,[]为数组)

   JSON?档有两种结构:对象、数据

   对象:以“{”开始,以“}”结束,是“名称/值”对?的集合。名称和值中 间?“:”隔开。多个“名称/值”对之间?“ , ”隔开。类似OC中的字典。

   数组:以“[”开始,以“]”结束,中间是数据。数据以“ , ”分隔。

   JSON中的数据类型:字符串、数值、BOOL、对象、数组。

如:

[{"name":"张三",

  "sex":"",

  "age":"18"

  },

  {"name":"王二麻子",

  "sex":"",

  "age":"30"

  },

  {

  "name":"盛辰",

  "sex":"小妖精",

  "age":"38"

  }

  ]

 


 

二、解析步骤

 1,一般情况下,服务器返回什么类型数据,我们就用什么类型的数据接收

  (1)从文件路径转化成二机制流再解析

   NSString *filePath = [[NSBundle mainBundle] pathForResource:fileName ofType:fileType]; 

    获取二进制流

  NSData *data = [NSData dataWithContentsOfFile:filePath];

 

  NSArray *object =  [NSJSONSerialization JSONObjectWithData:data options:(NSJSONReadingMutableContainers | NSJSONReadingMutableLeaves) error:nil];

  或者直接  NSArray *object = [data objectFromJSONData];

 (2)从文件路径直接解析

      NSString *str = [NSString  stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:nil ];

      NSArray *arr = [str objectFromJSONString];

  2NSJSONSerialization的参数含义:

          1) Data 数据对应的二进制流

          2) options 

            NSJSONReadingMutableContainers 是否生成可变数组

            NSJSONReadingMutableLeaves 是否生成可变的叶子

            NSJSONReadingAllowFragments 是否允许最外层不是字典或数组

          3)errors 解析过程出现的错误


三、当然还有第三方的JSONKit框架也可以实现解析,只不过一般系统提供就很好用啦,没必要扯淡的搞个第三方,不然就是装逼或脑子有病。

 

JSON数据解析

标签:

原文地址:http://www.cnblogs.com/qiushifalife/p/4802702.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!