/*

      总结:   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的更多相关文章

  1. iOS json解析的几种方法 NSJSONSerialization,JSONKit,SBJson ,TouchJson

    相关的第三方类库大家可以去github上下载 1.NSJSONSerialization 具体代码如下 : - (void)viewDidLoad { [super viewDidLoad]; NSD ...

  2. NSJSONSerialization(json序列化)

    //通过调用isValidJSONObject来判断Foundation对象是否可以转换为JSON数据 NSJSONSerialization isValidJSONObject:obj 我们能利用N ...

  3. 使用NSJSONSerialization将数组或字典转为字符串

    IOS中将数组或字典转为字符串可以用NSJSONSerialization,代码如下: NSData* data = [NSJSONSerialization dataWithJSONObject:a ...

  4. NSJSONSerialization 组json字符串

    抄的网上的. 主要是组织列表部分 NSDictionary *song = [NSDictionary dictionaryWithObjectsAndKeys:",@"lengt ...

  5. iOS开发——网络篇——JSON和XML,NSJSONSerialization ,NSXMLParser(XML解析器),NSXMLParserDelegate,MJExtension (字典转模型),GDataXML(三方框架解析XML)

    一.JSON 1.JSON简介什么是JSONJSON是一种轻量级的数据格式,一般用于数据交互服务器返回给客户端的数据,一般都是JSON格式或者XML格式(文件下载除外) JSON的格式很像OC中的字典 ...

  6. 系统自带的NSJSONSerialization解析json文件

    #import "ViewController.h" #import "Student.h" #import "GDataXMLNode.h" ...

  7. iOS下json的解析 NSJSONSerialization

      - (IBAction)JOSNButtonPressed:(id)sender { NSString *str=[@"http://douban.fm/j/mine/playlist? ...

  8. NSJSONSerialization介绍

      ios5中apple增加了解析JSON的api——NSJSONSerialization.网上已经有人做过测试,NSJSONSerialization在效率上完胜SBJSON.TouchJSON. ...

  9. Objective-C ,ios,iphone开发基础:JSON解析(使用苹果官方提供的JSON库:NSJSONSerialization)

    json和xml的普及个人觉得是为了简化阅读难度,以及减轻网络负荷,json和xml 数据格式在格式化以后都是一种树状结构,可以树藤摸瓜的得到你想要的任何果子. 而不格式化的时候json和xml 又是 ...

随机推荐

  1. CSS3点点滴滴

    css查遗补漏 标签(空格分隔): css 如果值为若干单词,则要给值加引号.p {font-family: "sans serif";} body的字体有继承兼容性问题,通常这么 ...

  2. PLT:说说Evaluation strategy

    Brief 在学习方法/函数时,我们总会接触到 按值传值 和 引用传值 两个概念.像C#是按值传值,但参数列表添加了ref/out后则是引用传值,但奇怪的事出现了 namespace Foo{ cla ...

  3. JS 实现可停顿的垂直滚动

    var ScrollMiddle = { 'Odiv':document.getElementById('comment'), // 目标DOM 'Oli': document.getElementB ...

  4. 【转】Key/Value之王Memcached初探:一、掀起Memcached的盖头来

    一.Memcached是何方神圣? 在数据驱动的Web开发中,经常要重复从数据库中取出相同的数据,这种重复极大的增加了数据库负载.缓存是解决这个问题的好办法.但是ASP.NET中的HttpRuntim ...

  5. C#微信公众平台开发—access_token的获取存储与更新

    一.什么是access_token? access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token.正常情况下access_token有效期为7200秒,重复获取 ...

  6. 让Windows2008R2也能进入手柄设置(游戏控制器设置)

    在Windows2008 R2系统中,插入XB360手柄后能自动完成驱动安装,在[设备和打印机]中也会出现手柄,但在上面右键→游戏控制器设置却没反应,什么都没打开,虽然不影响实际游戏,但总感觉有点堵. ...

  7. iOS阶段学习第15天笔记(NSArray与NSMutableArray 数组)

    iOS学习(OC语言)知识点整理 一.OC中的数组 1)数组:也是一个对象,数组中存放的是对象的地址,可以存放任意类型对象的地址,只能是对象不能是具体的数值,数组是有序的,      可以存放重复的元 ...

  8. CSRF 防御策略

    在业界目前防御 CSRF 攻击主要有三种策略:验证 HTTP Referer 字段:在请求地址中添加 token 并验证:在 HTTP 头中自定义属性并验证.下面就分别对这三种策略进行详细介绍. 验证 ...

  9. 分析.Net里线程同步机制

    我 们知道并行编程模型两种:一种是基于消息式的,第二种是基于共享内存式的. 前段时间项目中遇到了第二种 使用多线程开发并行程序共享资源的问题 ,今天以实际案例出发对.net里的共享内存式的线程同步机制 ...

  10. android listview 异步加载图片并防止错位

    网上找了一张图, listview 异步加载图片之所以错位的根本原因是重用了 convertView 且有异步操作. 如果不重用 convertView 不会出现错位现象, 重用 convertVie ...