ios网络_json数据解析
- 网络上数据传输以json或者xml格式.
- json是字典 或者 数组 或者字典跟数组嵌套的形式.解析json就是把json反序列化(解析)---把json转换为oc对象.json序列化就是把oc对象转化成json.
- 向搭建的本地服务器发送异步网络请求
- 虽然苹果不建议在9.0以后使用了,但是这种方式还是要会的.
- 其中connectError判断是否链接成功,如果不为nil说明链接出错,如果链接出错直接返回return,防止程序崩溃
response的本质是NSHTTPURLResponse则进行强转
response分相应头,响应体,相应头里面的httpResponse的一个属性是statusCode---服务器返回的状态码,200表示链接服务器成功并返回数据,304表示链接成功服务器数据没改变,不返回数据.如果状态码是5开头的则是服务器内部出错,4开头是客户端出错
如果链接成功,则解析数据,数据可能是字典,可能是数组,用id类型接收
如果error为nil则解析成功,输出json数据
*汉字显示的是Unicode编码,要做处理
- 处理方式:创建分类---模型,声明字典中的属性.逐个NSLog打印每个属性就不会出现这个问题.
#import <Foundation/Foundation.h>
@interface Person : NSObject
@property (nonatomic, copy) NSString *name;
@property (nonatomic, assign) int age;
+ (instancetype)personWithDic:(NSDictionary *)dic;
@end
#import "Person.h"
@implementation Person
//kvc字典转模型
+ (instancetype)personWithDic:(NSDictionary *)dic{
Person *person = [self new];
[person setValuesForKeysWithDictionary:dic];
return person;
}
- (NSString *)description {
return [NSString stringWithFormat:@"%@{name:%@,age:%d}",[super description],self.name,self.age];
}
@end
- 重写description方法,进行输出
- 在json解析出的字典数据,进行字典转模型打印输出.
如果解析出来的json的字典中的属性有10+好多好多...的话,而且又不需要所有的属性,只需要重写如下方法即可
//-(void)setValue:(id)value forUndefinedKey:(NSString *)key{
//
//}
另一个重要问题就是上面只是解析的一个很简单的一个字典.如果json中的数据是数组和字典嵌套的形式---一般都是这样的形式,如何解析.
- 解析方法:只需要对NSDictionary和NSArray的这个方法进行重写- (NSString *)descriptionWithLocale:(id)locale,重写这个方法的本质就是:json里面的字典和数组的输出格式的拼接
- 不需要导入头文件,这个方法可以自己保存起来当做代码块或者分类保存起来,用的时候直接cop上即可.
ios网络_json数据解析的更多相关文章
- Android网络之数据解析----使用Google Gson解析Json数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/4 ...
- Android网络之数据解析----SAX方式解析XML数据
[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...
- iOS学习——JSON数据解析(十一)
在之前的<iOS学习——xml数据解析(九)>介绍了xml数据解析,这一篇简单介绍一下Json数据解析.JSON 即 JavaScript Object Natation,它是一种轻量级的 ...
- 【原】iOS学习38网络之数据解析
1. 解析的基本的概念 解析:从事先规定好的格式中提取数据 解析前提:提前约定好格式,数据提供方按照格式提供数据.数据获取方则按照格式获取数据 iOS开发常见的解析:XML解析.JOSN解析 2. X ...
- iOS网络之数据请求GET和POST
1. HTTP和HTTPS协议 1> URL URL全称是Uniform Resource Locator(统一资源定位符)通过1个URL,能找到互联网上唯一的1个资源 URL就是资源的地址.位 ...
- iOS学习—JSON数据解析
关于在iOS平台上进行JSON解析,已经有很多第三方的开源项目,比如TouchJson,JSONKit,SBJon等,自从iOS5.0以后,苹果SDK推出了自带的JSON解决方案NSJSONSer ...
- iOS学习之数据解析
解析:按照约定好的格式提取数据的过程叫做解析; 后台开发人员按照约定好的格式存入数据,前端开发人员按照约定的格式读取数据; 主流的格式: XML / JSON 前端和后台都能识别的格式; XML解析 ...
- Python网络爬虫数据解析的三种方式
request实现数据爬取的流程: 指定url 基于request发起请求 获取响应的数据 数据解析 持久化存储 1.正则解析: 常用的正则回顾:https://www.cnblogs.com/wqz ...
- 【iOS】Plist-XML-JSON数据解析
网络上数据传输通用的有XML.JSON等,iOS中也能够用Plist. 要进行传输数据.就要首先进行序列化: 1.序列化. 对象转换成二进制流.(这个一句话即可) .反序列化. 二进制流转换为对象等 ...
随机推荐
- GTX780
- twitter storm 源码走读之5 -- worker进程内部消息传递处理和数据结构分析
欢迎转载,转载请注明出处,徽沪一郎. 本文从外部消息在worker进程内部的转化,传递及处理过程入手,一步步分析在worker-data中的数据项存在的原因和意义.试图从代码实现的角度来回答,如果是从 ...
- Open vSwitch流表应用实战
本文参考:Open vSwitch流表应用实战 一个通过改变流表下发而实现的互相通信实验. 实验目的: 掌握Open vSwitch下发流表操作: 掌握添加.删除流表命令以及设备通信的原理. 原理:. ...
- 《编写可维护的 Javascript》读书笔记(附录 A 部分):Javascript 编码风格指南(1)原始值
记录一下比较有用的编码规范(该指南是基于 Java 语言编码规范和 Javascript 编程规范,同时结合作者 Nicholos Zakas 的个人经验和喜好). 一些关于格式(包括缩进.行的长度. ...
- TCP/IP简介
TCP/IP协议分层 提到协议分层,我们很容易联想到ISO-OSI的七层协议经典架构,但是TCP/IP协议族的结构则稍有不同.如图所示 TCP/IP协议族按照层次由上到下,层层包装.最上面的就是应用层 ...
- Rails--export csv
--controller def export_agent_impressions export_start_time = Time.parse(params[:es_time]) + 7.hours ...
- LR脚本技巧
1.参数化空值 如上图所示,当参数化时某个值需要为空值(非空格),直接在参数化文件中空一行/格即可,虽然Parameter List界面上没有显示空的那一行,但并不影响取值. 2.手工日志 ...
- breadth-first depth-first best-first
Computer Science An Overview _J. Glenn Brookshear _11th Edition For our example in Figure 11.7, we c ...
- ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明
原文:ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 ArcGIS Portal 10.4 本地坐标系的web 3d地形展示制作说明 By 李远祥 ArcGIS Por ...
- sqlserver 在脚本中,为所有字符前没有N标记的字符增加N
{[^N]}{'[\u4e00-\u9fa5]|[\u4e00-\U9fa5]|[0-9]|[A-Z]} \1N\2