iOS开发指南-JSON篇

相关文章:《iOS开发指南-XML篇》

一.JSON文档结构

1. 关于JSON

(1)JSON是什么?

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.

(2)JSONXML比较

XML相比,描述相同数据JSON所需的字符个数要少,所以传输速度就会更高,流量更少.

(3)JSON更适合iOS移动开发

  • 由于Web和移动平台开发的要求是流量尽可能少,速度尽可能快,而轻量级的JSON相对于其他数据交换格式更符合要求.
  • 构成JSON的两种结构,为字典和数组.刚好可以用NSDictionaryNSArray去接收数据,使用更方便.

2.JSON示例

最近在研究黄金,所以刚好,以聚合数据所提供的免费黄金数据数据接口作为示例,请求一个JSON格式的数据.

使用前注册好账号,并进行了实名验证,然后申请黄金数据API资格,会获取一个AppKey

AppKey

我们参照请求示例使用Postman工具发送Get请求
Postman

获得的JSON数据如下,为字典结构的JSON(作为讲解,3以后的相同格式的数据以…代替)

{
  "resultcode": "200",
  "reason": "SUCCESSED!",
  "result": [
    {
      "1": {
        "variety": "Au100g",
        "latestpri": "286.02",
        "openpri": "288.00",
        "maxpri": "289.00",
        "minpri": "286.02",
        "limit": "-0.38%",
        "yespri": "287.12",
        "totalvol": "440.00",
        "time": "2016-07-20 15:27:54"
      },
      "2": {
        "variety": "Au(T+N1)",
        "latestpri": "288.50",
        "openpri": "288.65",
        "maxpri": "290.50",
        "minpri": "287.05",
        "limit": "-0.47%",
        "yespri": "289.85",
        "totalvol": "80304.00",
        "time": "2016-07-20 15:29:55"
      },
      "3": {
        "variety": "Au(T+D)",
        "latestpri": "285.71",
        "openpri": "287.44",
        "maxpri": "287.70",
        "minpri": "285.31",
        "limit": "-0.38%",
        "yespri": "286.79",
        "totalvol": "64330.00",
        "time": "2016-07-20 15:30:00"
      },
     ...
    }
  ],
  "error_code": 0
}

3.JSON结构讲解

二.JSON文件解析

(1)解析步骤

①首先调用NSString的

//将文件读取成字符串
+ (nullable instancetype)stringWithContentsOfFile:(NSString *)path encoding:(NSStringEncoding)enc error:(NSError **)error;

②然后调用NSString的

//将字符串转成二进制数据NSData
- (nullable NSData *)dataUsingEncoding:(NSStringEncoding)encoding;                                   

③最后调用系统类NSJSONSerialization的

//进行解析,解析成NSArrayNADictioanry
+ (nullable id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError **)error;

(2)程序举例

NSString *pathDesktop = @"/Users/mac/Desktop";
//1.读取json文件中的信息
NSString *string = [NSString stringWithContentsOfFile:[pathDesktop stringByAppendingString:@"/json/jsonUserList.txt"] encoding:NSUTF8StringEncoding error:nil];        

//2.将string转换成data
NSData *dataFromString = [string dataUsingEncoding:NSUTF8StringEncoding];

//3.json解析
NSDictionary *dictionaryFromFile = [NSJSONSerialization JSONObjectWithData:dataFromString options:NSJSONReadingMutableContainers error:nil];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Story51314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值