将JSON数据写入磁盘

时间:2012-07-27 16:33:11

标签: iphone objective-c ios ipad

编写JSON数据/ NSDictionary并再次读取它的最简单方法是什么?我知道有NSFileManager,但是有没有一个开源框架库可以让这个过程更容易? iOS5 NSJSONSerialization类是否支持将数据写入磁盘?

2 个答案:

答案 0 :(得分:16)

是的,NSJSONSerialization是要走的路:

NSString *fileName = @"myJsonDict.dat"; // probably somewhere in 'Documents'
NSDictionary *dict = @{ @"key" : @"value" };

NSOutputStream *os = [[NSOutputStream alloc] initToFileAtPath:fileName append:NO];

[os open];
[NSJSONSerialization writeJSONObject:dict toStream:os options:0 error:nil];
[os close];

// reading back in...
NSInputStream *is = [[NSInputStream alloc] initWithFileAtPath:fileName];

[is open];
NSDictionary *readDict = [NSJSONSerialization JSONObjectWithStream:is options:0 error:nil];
[is close];

NSLog(@"%@", readDict);

答案 1 :(得分:1)

您似乎必须确保路径中的目录存在,否则您的应用将在使用+ writeJSONObject:toStream:options:error:时挂起并消耗100%的CPU。文件本身将由流创建。