从本地读取json文件
今天需要从本地Resource文件夹里读取json文件,发现用如下代码有问题:
- 代码一
NSString *path = [self pathForLocationsDataFile];
locationDict = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
// locationDict一直为nil
刚开始一直以为路径下没有对应的json文件,后来跑到.app路径下看,json文件的确存在。
后来改用如下代码,ok了
- 代码二
NSString *jsonPath = [[NSBundle mainBundle] pathForResource:@"divesite" ofType:@"json"];
NSData *data=[NSData dataWithContentsOfFile:jsonPath];
NSError *error;
id jsonObject=[NSJSONSerialization JSONObjectWithData:data
options:NSJSONReadingAllowFragments
error:&error];
但是,如果你在代码里面创建一个Dictionary对象,用代码三的方法把它写到本地文件里,在从文件里把它读出来是可以的。
- 代码三
- (NSString *) pathForDataFile {
NSArray*documentDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString*path = nil;
if (documentDir) {
path = [documentDir objectAtIndex:0];
}return [NSString stringWithFormat:@"%@/%@", path, @"test.bin"];
}- (void) saveDataToDisk:(NSMutableDictionary*)dict
{
NSString * path = [self pathForDataFile];
if (dict == nil) {
return;
}
[dict writeToFile:path atomically:YES];
}- (NSMutableDictionary*) loadDataFromDisk
{
NSString* path= [self pathForDataFile];
NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
if (rootObject == nil) {
rootObject = [[NSMutableDictionary alloc] initWithCapacity:0];
}
return rootObject;
}
我决定去看看test.bin长啥样?test.bin竟然是xml的格式,难怪使用
NSMutableDictionary * rootObject = [[NSMutableDictionary alloc] initWithContentsOfFile:path];
【从本地读取json文件】的方式不能读取一个json格式的文件!
推荐阅读
- 【小白必看】Redis手把手教你从零开始下载到安装,再到配置允许图形化工具远程连接(一)
- 从零开始,用elementui躺坑vue - git
- 你会高效沟通吗
- 从外往内看的感恩小觉悟
- 美好的一天,就从碧欧泉奇迹水开始
- clickhouse|clickhouse join_HDFS+ClickHouse+Spark(从0到1实现一款轻量级大数据分析系统)
- 【超详细】Apache Durid从入门到安装详细教程
- 证券分析----从哪来,去何方
- 投稿|中国游戏出海:从粗放到集约,从突围到冲锋
- 【ARK|【ARK UI】HarmonyOS 从相册选择图片并显示到Image组件上