NSJSONSerialization
/*
总结: json格式的读写:
解析:
data = NSData dataWithContentsOfUrl:XXX
id obj = [ NSJsonSerialization NSJSONObjectWithData:data XXXX];
生成json格式的文件
array或 dict
NSData* data = [NSJSONSerialization dataWithJSONObject:array/dict XXXX];
data writeToFile:PATH;
或者
data writeToURL:(NSURL*)url;
*/
#define urlString @"http://localhost/files/test.json"
#define cpuString @"http://localhost/files/cpu.json"
void parseJsonData(void)
{
//将特殊字符编码,例如 中文
// urlString stringByAddingPercentEscapesUsingEncoding:<#(NSStringEncoding)#>
//将一些被编码的字符串解码成特殊字符中
// urlString stringByReplacingPercentEscapesUsingEncoding:<#(NSStringEncoding)#>
//将url字符串编码,即去除特殊字符串,若是没有特殊字符,可以不必
NSString* validUrlString = [urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
NSURL * url = [NSURL URLWithString:validUrlString ];
NSData* data = [ NSData dataWithContentsOfURL:url ];
NSString *contents = [[ NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];
NSLog(@"contents:%@",contents);
NSError* error=nil;
NSArray* array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&error];
}
//********************************************
#define PATH @"/Users/wenhua/Desktop/write.json"
//把内存中的数据构造成json格式的字节流
void makeJsonData(void)
{
NSMutableArray *array = [[ NSMutableArray alloc]init];
[array addObject:@"abc"];
[array addObject:[NSNumber numberWithInt:123]];
[array addObject:[NSNumber numberWithBool:YES]];
[array addObject:[NSNumber numberWithFloat:3.14159]];
[array addObject:[NSNull null]];
//创建一个字典
NSDictionary* dict=@{@"k1":@"v1",@"k2":@"v2"};
[array addObject:dict];
NSArray* arr = @[@"one",@"two",@"three" ];
[array addObject:arr];
NSError* error=nil;
NSData* data = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error];
if (error) {
NSLog(@"%@",error);
return;
}
[data writeToFile:PATH atomically:YES];
}
NSJSONSerialization的更多相关文章
- iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson
相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...
- NSJSONSerialization(json序列化)
//通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据 NSJSONSerialization isValidJSONObject:obj 我们能利用N ...
- 使用NSJSONSerialization将数组或字典转为字符串
IOS中将数组或字典转为字符串可以用NSJSONSerialization,代码如下: NSData* data = [NSJSONSerialization dataWithJSONObject:a ...
- NSJSONSerialization 组json字符串
抄的网上的. 主要是组织列表部分 NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:",@"lengt ...
- iOS开发——网络篇——JSON和XML,NSJSONSerialization ,NSXMLParser(XML解析器),NSXMLParserDelegate,MJExtension (字典转模型),GDataXML(三方框架解析XML)
一.JSON 1.JSON简介什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典 ...
- 系统自带的NSJSONSerialization解析json文件
#import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...
- iOS下json的解析 NSJSONSerialization
- (IBAction)JOSNButtonPressed:(id)sender { NSString *str=[@"http://douban.fm/j/mine/playlist? ...
- NSJSONSerialization介绍
ios5中apple增加了解析JSON的api——NSJSONSerialization.网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON.TouchJSON. ...
- Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)
json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子. 而不格式化的时候json和xml 又是 ...
随机推荐
- C#实现WinForm窗体逐渐显示效果
C#实现WinForm窗体逐渐显示效果,这个博客园里面已经有其它人已经实现了,原理很简单,就是通过定时改变窗体的透明度(从0到1,即透明度从完全透明到不透明),我这里也是按照这个思路来实现的,但是我做 ...
- 手机Fildder抓包_监控应用请求
Fiddler是一个http调试代理,它能 够记录所有的你电脑和互联网之间的http通讯,Fiddler 可以也可以让你检查所有的http通讯,设置断点,以及Fiddle 所有的“进出”的数据(指co ...
- [DBW]大图轮播,可通过两种方法实现
通过在div中加入表格,实现大图轮播,代码如下: 整体的思路: 1.在div中嵌入表格,设置div的宽和高,设置成图片大小,确定其位置,将图片插入表格,超出div部分隐藏 2.在js中定义一个变量接受 ...
- Win10 IoT C#开发 6 - 4x4矩阵键盘扫描
Windows 10 IoT Core 是微软针对物联网市场的一个重要产品,与以往的Windows版本不同,是为物联网设备专门设计的,硬件也不仅仅限于x86架构,同时可以在ARM架构上运行. 上一章我 ...
- 以Unix之名
即便有了MBP,有时,还是想把MBP装上一个Linux发行版,因为习惯了Linux下的折腾. 但每次想要动手安装时,都会告诉自己,MacOS是很纯正的Unix系统,这样,内心的冲动就可以再多压一压. ...
- Objective-c 动画
想提高下以后做的应用给客户带去的体验,所以看了几天OC的CAAnimation动画类,也做了几个小案例,下面讲个别案例来做为本文的主要内容. 一:继承结构截图 上面截图中用得最多的类大概就是,CABa ...
- 【Linux_Fedora_应用系列】_4_安装chrome浏览器
在前面一篇文章中,我们讨论了在Linux Fedora 14下安装WMV解码器:[Linux_Fedora_应用系列]_3_如何利用Smplayer播放WMV格式的文件 在文章中介绍的方法同样适合FC ...
- Spring web应用最大的败笔
第一篇 介绍下IOC DI Spring主要是业务层框架,现在已经发展成为一个完整JavaEE开发框架,它的主要特点是IoC DI和AOP等概念的融合,强项在面向切面AOP.推出之初因为Ioc/AOP ...
- 泛函编程(27)-泛函编程模式-Monad Transformer
经过了一段时间的学习,我们了解了一系列泛函数据类型.我们知道,在所有编程语言中,数据类型是支持软件编程的基础.同样,泛函数据类型Foldable,Monoid,Functor,Applicative, ...
- 使用ADO.NET执行SQL脚本
public void ExecuteSql(SqlConnection connection, string sqlFile) { string sql = ""; using ...