iOS网络编程3—JSON解析
来源:互联网 发布:java多级菜单 编辑:程序博客网 时间:2024/05/21 11:06
什么是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
在后续代码中补上:
</pre><pre name="code" class="objc">//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对象(字典或者数组等),返回给客户端。
- iOS网络编程3—JSON解析
- iOS网络编程开发—JSON解析与XML解析
- iOS 网络编程 (四)JSON解析
- iOS网络编程:网络交互数据格式解析之json
- iOS----解析网络json
- 网络编程:Json解析
- iOS开发之网络编程:XML,JSon解析
- iOS开发之网络编程篇四:XML,JSon解析
- iOS网络编程4--使用SwiftyJSON解析JSON数据
- iOS编程学习二十一(网络和JSON解析)
- iOS网络编程开发笔记1—JSON和XML数据解析
- iOS开发网络 -- JSON解析
- iOS网络笔记--JSON解析
- 网络编程--JSON数据解析
- Android网络与数据存储——网络编程数据处理(网络请求解析Json,解析xml)
- iOS网络开发——解析与封装JSON数据
- iOS开发网络篇—JSON数据的解析
- iOS开发网络篇—JSON数据的解析
- CocoaPod安装第三方库
- 二路归并排序
- Binary Tree Right Side View
- js中加载并解析xml文件, 动态添加标签,控件
- python strip()函数
- iOS网络编程3—JSON解析
- 转机
- android 集成支付宝(二)
- 剑指offer--从上往下打印二叉树
- 三层架构入门
- 【高性能MySQL】读书摘录3-第四章、Schema与数据类型优化
- 蘑菇街2016实习生笔试面试总结
- Path Sum II
- MySQL基础入门之查询续集