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 又是 ...
随机推荐
- 使用redis和fastjson做应用和mysql之间的缓存
第一次做这种javaweb的项目,难免还是要犯很多错误. 大概也知道,redis常常被用来做应用和mysql之间的缓存.模型大概是这样子的. 为了让redis能够缓存mysql数据库中的数据,我写了很 ...
- 解决ios开发中不合法的网络请求地址
NSString *const kWebsite = @"http://image.baidu.com/search/index?tn=baiduimage&ipn=r&ct ...
- [开源 .NET 跨平台 数据采集 爬虫框架: DotnetSpider] [一] 初衷与架构设计
[DotnetSpider 系列目录] 一.初衷与架构设计 二.基本使用 三.配置式爬虫 四.JSON数据解析与配置系统 为什么要造轮子 同学们可以去各大招聘网站查看一下爬虫工程师的要求,大多是招JA ...
- C#读取配置文件的几种方式
配置文件 <?xml version="1.0" encoding="utf-8" ?> <configuration> <con ...
- Sandcastle入门:创建C#帮助文档
Sandcastle入门:创建C#帮助文档 今天学到了一个东西:利用vs2005生成的dll/xml来生成帮助文档. 完成这个伟大任务的是Sandcastle,微软推出的类库文档编译工具. 在开始这篇 ...
- C# 汉字转拼音(支持GB2312字符集中所有汉字)
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个. 分区表示 GB 2312中对所收汉字进行了“分区”处理,每区含有94个汉字/符号.这种表示方式也称为区位码. )- ...
- C# winform Listbox添加和删除items
两个listbox添加和删除items #region 添加/移除 //添加 private void btnAdd_Click(object sender, EventArgs e) { ) { r ...
- iOS阶段学习第13天笔记(多态)
iOS学习(OC语言)知识点整理 一.关于多态的介绍 1)多态的通俗理解,即一种事物多种形态. 2)多态的赋值兼容:即父类的引用可以指向子类的对象. 3)在多态中调用方法时看对象,不看指针,即我们要看 ...
- TabHost的使用
Android中的选项卡是用TabHost实现的. 首先,定义TabHost的布局文件: <?xml version="1.0" encoding="utf-8&q ...
- hibernate----1-1
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE hibernate-configuration PUBLIC "-//Hi ...