博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
iOS网络编程3—JSON解析
阅读量:2351 次
发布时间:2019-05-10

本文共 1766 字,大约阅读时间需要 5 分钟。

什么是JSON

1.JSON是一种轻量级的数据格式,一般用于数据交互

2.服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外)

JSON的格式很像OC中的字典和数组

{"name":"zhong","age":20}

{"names":["zhong","li","huang"]}

标准JSON格式的注意点:key必须用双引号

要想从JSON中挖出具体数据,得对JSON进行解析

JSON转换为OC数据类型,其规律如下

     JSON                                    OC

大括号{  }                            NSDictionary

中括号[  ]                             NSArray

双引号 " "                            NSString

数字 10、10.8                     NSNumber

JSON解析方案

常见的解析方案有4种

第三方框架:JSONKit、SBJson、TouchJSON(性能从左到右,越差)

苹果原生(自带):NSJSONSerialization(性能最好,一般用这种)

NSJSONSerialization的常见方法:

JSON数据转换为OC对象

+(id)JSONObjectWithData:(NSData *)data options:(NSJSONReadingOptions)opt error:(NSError *__autoreleasing *)error;

OC 对象转换为JSON数据

+(NSData *)dataWithJSONObject:(id)obj options:(NSJSONWritingOptions)opt error:(NSError *__autoreleasing *)error

例如在上次讲解到HTTP请求中http://blog.csdn.net/bun12345/article/details/44985563

在后续代码中补上:

//3.发送用户名和密码给服务器            //创建一个url:请求路径    NSString *urlStr = [NSString stringWithFormat:@"http://localhost/jiaxiao/login?username=%@&pwd=%@",usernameText, pwdText];        NSURL *url = [NSURL URLWithString:urlStr];       //创建一个请求    NSURLRequest *request = [NSURLRequest requestWithURL:url];      //发送一个同步请求(在主线程发送请求),不过一般是不用同步请求的,比较容易卡住    NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];        //解析服务器返回的 JSON数据    NSDictionary * dict= [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:nil];        NSString *error = dict[@"error"];    if(error)    {        //{"error":用户名不存在}        //{"error":密码不正确"}        [self showError:error];    }else{        //{"success":登陆成功"}        NSString *success = dict[@"success"];        [self showError:success];            }
这样就完成了对服务器返回来的json数据进行了解析,总的来说,我们要做的工作就是,知道服务器的url和要传的参数,然后向服务器发出请求,解析服务器返回来的数据就行了。

即客户端向服务器发送请求,服务器返回NSData,(JSON数据),我们将其转换为OC对象(字典或者数组等),返回给客户端。

你可能感兴趣的文章
成功的15种能力
查看>>
企业管理软件的发展史
查看>>
警告自己的生活方式
查看>>
让你的部属“跑起来”的十大方法
查看>>
合理做下级
查看>>
四十不惑
查看>>
周鸿祎的寄语
查看>>
U盘修复记
查看>>
管理学十大经典定理
查看>>
杨澜的一句话,却要让我记一生
查看>>
U盘使用心得
查看>>
作为程序员的心态
查看>>
struts 2 s:if标签的使用
查看>>
input 按钮背景,在IE6 IE7中不显示
查看>>
div使用margin:0px auto 不居中
查看>>
JavaScript 事件模型 事件处理机制
查看>>
Invalid character constant
查看>>
CSS浏览器兼容性问题 归纳
查看>>
Java:Java快速入门[转]
查看>>
百度地图API,自定义地图标注
查看>>