您的位置:首页 > Web前端 > JavaScript

NSJSONSerialization

2015-11-22 15:06 513 查看
/*

  总结: 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];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: