iOS 阶段学习第22天笔记(JSON数据格式介绍)
iOS学习(OC语言)知识点整理
一、JSON数据格式
1)概念:json是一种网络数据传输格式,有值/对象:{“A”:1,”B”:”2”…}词典;对象的序列:[,,,,,]数组两种数据类型
2)URLWithString 将字符串网址封装成NSURL对象 例如:
NSString *urlStr=@"http://10.0.8.8/sns/my/user_list.php?number=20
&page=";//get post
NSURL *url=[NSURL URLWithString:urlStr];
3)fileURLWithPath 将本地文件地址封装成NSURL的对象 例如:
url=[NSURL fileURLWithPath:@“Users/kingkong/JsonFile/test.json”];
4)initWithContentsOfURL 用于同步请求网络上的json数据 例如:
NSData *json=[[NSData alloc]initWithContentsOfURL:url];
5)initWithData 将JSON数据解析成字符串 例如:
NSString *strjson=[[NSString alloc]initWithData:json encoding:NSUTF8StringEncoding];
NSLog(@"%@",strjson);
6)options:NSJSONReadingAllowFragments 可直接将json数据解析为字典对象 例如:
//读取文件内容(json格式的数据)
NSData *jsonData=[[NSData alloc]initWithContentsOfFile:path];
//直接将json数据解析为字典对象
NSDictionary *dict1=[NSJSONSerialization JSONObjectWithData:jsonData options:
NSJSONReadingAllowFragments error:nil];
7)获取网络图片数据并保存到本地(类似下载)实例代码
//获取服务器上的资源(图片数据)
NSData *iconData=[NSData dataWithContentsOfURL:[NSURL URLWithString:iconUrl]];
NSString *iconFile=[fullPath stringByAppendingPathComponent:@"icon.png"];
//将图片数据写入文件(保存图片到文件中)
[iconData writeToFile:iconFile atomically:YES];
8)获取JSON数据并遍历数据实例代码:
//请求的网络路径
NSString *path=@"http://10.0.8.8/sns/my/user_list.php?number=20&page=";
//构造URL
NSURL *url =[NSURL URLWithString:path];
//请求获取JSON数据
NSData *json=[[NSData alloc]initWithContentsOfURL:url];
//将JSON数据解析成对象
id obj=[NSJSONSerialization JSONObjectWithData:json options:NSJSONReadingMutableContainers error:nil];
//遍历JSON数据
if ([obj isKindOfClass:[NSDictionary class]]) {
NSDictionary *dict=(NSDictionary *)obj;
NSArray *array=[dict objectForKey:@"users"];
for (NSDictionary *dic in array) {
NSLog(@"username:%@\tuid:%@",[dic objectForKey:@"username"],[dic objectForKey:@"uid"]);
}
}
9)将字典集合编码成JSON数据 实例代码
//构造字典数据
NSArray *arry=@[@"pass1234",@"" ];
NSDictionary *dic=[[NSDictionary alloc]initWithObjectsAndKeys:@"KingKong",@"username" ,@"男",@"sex",arry,@"password",nil];
//将字典集合数据转换为JSON数据类型
NSData *json=[NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
//重新解析JSON数据
NSString *strjson=[[NSString alloc]initWithData:json encoding:NSUTF8StringEncoding];
NSLog(@"%@",strjson);
10)JSON解析工具Jason.app 【下载】
11)NSDate OC中的日期函数操作【详情】
iOS 阶段学习第22天笔记(JSON数据格式介绍)的更多相关文章
- iOS阶段学习第29天笔记(UITextField的介绍)
iOS学习(UI)知识点整理 一.关于UITextField的介绍 1)概念: UITextField 是用于接收用户输入的一个控件 2)UITextField 初始化实例代码: //创建一个UIt ...
- iOS阶段学习第28天笔记(UIView的介绍)
iOS学习(UI)知识点整理 一.关于UIVIew 的介绍 1)概念:UIView 是用于装载并展示各类控件的大容器,是iOS中所有UI控件的基类 2)UIView 初始化实例代码 UIView * ...
- iOS阶段学习第27天笔记(UIButton-UIImageView的介绍)
iOS学习(UI)知识点整理 一.关于UIButton的介绍 1)概念:UIButton 是一种常用的控件,通过点击触发相应的功能 2)UIButton 的几种常用的状态 1.UICon ...
- iOS阶段学习第35天笔记(Touch手势介绍)
一.Touch手势 1.利用手势实现UIButton移动效果 实例代码 1) 创建一个继承自UIButton的类 MyButton.h 代码实现 #import <UIKit/UIKit.h ...
- iOS 阶段学习第23天笔记(XML数据格式介绍)
iOS学习(OC语言)知识点整理 一.XML数据格式介绍 1)概念:xml是extensible markup language扩展的标记语言,一般用来表示.传输和存储数据 2)xml与json目前使 ...
- iOS阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS 阶段学习第四天笔记(循环)
iOS学习(C语言)知识点整理笔记 一.分支结构 1.分支结构分为单分支 即:if( ){ } ;多分支 即:if( ){ }else{ } 两种 2.单分支 if表达式成立则执行{ }里的语句:双 ...
- iOS阶段学习第20天笔记(MRC内存管理)
iOS学习(OC语言)知识点整理 一.OC中的内存管理 1)概念:内存管理的对象为所有继承了NSObject的对象,对基本数据(如:int .float.double...)无效 OC中采用 ...
- iOS阶段学习第15天笔记(NSDictionary与NSMutableDictionary 字典)
iOS学习(OC语言)知识点整理 一.OC中的字典 1)字典:是一个容器对象,元素是以键-值对(key-value)形式存放的,key和value是任意类型的对象,key是唯一的,value可以重复 ...
随机推荐
- 如何在CRM系统中集成ActiveReports最终报表设计器
有时候,将ActiveReports设计器集成到业务系统中,为用户提供一些自定义的数据表,用户不需要了解如何底层的逻辑关系和后台代码,只需要选择几张关联的数据表,我们会根据用户的选择生成可供用户直接使 ...
- AngularJS入门教程1--配置环境
首先需要下载AngualrJS,下载地址 https://angularjs.org/ 官方网站提供2种下载使用AngularJS方法: 1. 去GitHub下载 ,点击按钮会跳转到GitHub页面, ...
- 我心中的核心组件(可插拔的AOP)~第十二回 IoC组件Unity
回到目录 说在前 Ioc组件有很多,之前也介绍过autofac,castle等,今天再来说一下在微软Nlayer DDD架构里使用的unity组件,今天主要说一下依靠注入,如果希望看拦截的用法,可以阅 ...
- Thrift架构~thrift中间语言的认识(只有它什么都不是,它才有可能什么都是)
中间语言是我为thrift语言起的名字,呵呵,为什么叫它中间语言呢,其实意思很简单,就是说,它只是一个过程,而不是一个最终的结果,而结果需要这个中间过程的影响,没有中间语言,结果语言也不能产生,在th ...
- MVVM架构~knockoutjs系列之验证信息自定义输出~续
返回目录 上一讲中,我以一个实际中的例子说明了knockoutjs的自定义验证功能,在使用过程中,出现了一个问题,当然了不是问题,只是一种需求,上一讲中自定义验证的表现是:当页面加载后,自动显示有问题 ...
- Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!)
Web信息架构——设计大型网站(第3版)(久负盛名经典再现,信息架构设计领域基石之作!) [美]]Peter Morville(彼得·莫维尔) Louis Rosenfeld(路易斯·罗森菲尔德) ...
- Java六大问题你都懂了吗?
这些问题对于认真学习java的人都要必知的,当然如果你只是初学者就没必要那么严格了,那如果你认为自己已经超越初学者了,却不很懂这些问题,请将你自己重归初学者行列. 一.到底要怎么样初始化! 本问题讨论 ...
- C# WebBrowser 获得选中部分的html源码
Winform程序 2.0的. 需要引用Microsoft.mshtml. private void Form1_Load(object sender, EventArgs e) { webBrows ...
- python socket 学习
Python在网络通讯方面功能强大,今天学习一下Socket通讯的基本方式,分别是UDP通讯和TCP通讯. UDP通讯 upd 服务端 #!/usr/bin/env python # -*- codi ...
- Netbeans不能正常启动glassfish或者部署失败不能运行的问题
错误信息:D:\临时文件\netbeans\WebTest\build\web中部署GlassFish Server 4, deploy, Connection refused: connect, f ...