将JSON数据写入磁盘
编写JSON数据/ NSDictionary并再次读取它的最简单方法是什么? 我知道有NSFileManager,但有没有一个开源框架库可以使这个过程更容易? iOS5 NSJSONSerialization类是否支持将数据写入磁盘?
是的, 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);
看来你必须确保路径中的目录存在,否则当使用+ writeJSONObject:toStream:options:error:
时,你的应用程序将挂起并消耗100%的CPU + writeJSONObject:toStream:options:error:
. 文件本身将由流创建。