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 又是 ...
随机推荐
- Java魔法堂:内部类详解
一.前言 对于内部类平时编码时使用的场景不多,比较常用的地方应该就是绑定事件处理程序的时候了(从C#.JS转向Java阵营的孩子总不不习惯用匿名内部类来做事件订阅:().本文将结合Bytecode对四 ...
- Go语言接口
接口是面向对象的必备属性之一,即便是像C语言这种面向过程的语言也可以通过指向函数的指针来实现接口.我们熟知的面向对象语言中更是少不了接口.最近闲了下来,又可以开始学习Go语言了,发现Go语言的接口吸收 ...
- 让Windows2008R2也能进入手柄设置(游戏控制器设置)
在Windows2008 R2系统中,插入XB360手柄后能自动完成驱动安装,在[设备和打印机]中也会出现手柄,但在上面右键→游戏控制器设置却没反应,什么都没打开,虽然不影响实际游戏,但总感觉有点堵. ...
- html 组装table 指定列自动换行
4列后自动换行思路:int i = 0;while (dr.Read()){ if (i % 4 == 0) 输出一行的开始 输出这个数据 if (i % 4 == 3) 输出一行 ...
- jquery.tagthis和jquery.autocomplete一起实现标签
目的 jquery.tagthis:http://www.dangribbin.co/jquery-tag-this/demo/ 使用tagthis控件实现标签的输入提醒功能,每个标签具有id和tex ...
- Delegate
public delegate void EventHandler(object sender, EventArgs e); pulic EventHandler HandleMapMessage; ...
- 关于ASP.NET的“Forms身份验证”
目录结构如图如示: 如果用户没有通过身份验证则跳转到登录页面让用户登录,在配置文件的<system.web></system.web>结点下添加如下代码: <!--身份验 ...
- MongoDB学习-在.NET中的简单操作
1.新建MVC项目, 管理NuGet包,进入下载MongDB.net库文件 2.新增项目DAL数据访问层,引用以下库文件: 3.C# 访问MongoDB通用方法类: using MongoDB.Dri ...
- Thinkphp 用PHPExcel 导入Excel
搞了个简单的Excel导入, 用的是PHPExcel(百科:用来操作Office Excel文档的一个PHP类库, 基于微软的OpenXML标准和PHP语言) 好, 不说了, 开始吧... 首先得有P ...
- gcd和ex_gcd
gcd就是欧几里得算法,可以快速的求出俩个数的最大公因数,进而也可以求其最大公倍数(俩数之积除以最大公因数),比较简单直接看代码就好了,一般用递归版,简短精简,敲得快,但如果数剧奇葩,怕溢出,那就用递 ...