关于iOS中将json格式存到文件中并读取解析成字典

来源:互联网 发布:linux内核安装教程 编辑:程序博客网 时间:2024/06/05 09:41

最近做一个项目遇到一个问题就是,我在读取之前写好的json后需要记录浏览了那些活动,这些活动不仅还有活动的名称,还有有关活动的一系列资源(包括图片,音频,视频)这些资源也是以json格式存放的。我解决这个问题的思路首先活动的名字当然好保存,重点是如何保存那些资源,也就是保存json格式。通过查阅资料找到一种方法与大家共享。若大家还有更高效的方法,也请不要吝啬哦!

OK!开始正文:

首先要将你读取到的字典转成NSData格式,这一步是很重要的,你不能直接把字典写进文件中,因为这样做的话你在读取解析时候获得的json是控制,我觉得这个应该是数据存储解析的问题。所以我采用了将字典转成NSData格式,然后将NSData转成NSString,再将NSString值写进文件中:

   NSData *tempData = [self toJSONData:self.dataDictionary];   NSString *jsonString = [[NSString alloc] initWithData:tempData                                                 encoding:NSUTF8StringEncoding];- (NSData *)toJSONData:(id)theData{        NSError *error = nil;    NSData *jsonData = [NSJSONSerialization dataWithJSONObject:theData                                                       options:NSJSONWritingPrettyPrinted                                                         error:&error];        if ([jsonData length] > 0 && error == nil){        return jsonData;    }else{        return nil;    }}
这里就可以把jsonString写进文件了。

然后就是读取解析的时候了:

   NSError *error = nil;   NSDictionary *dicFromJSON =   [NSJSONSerialization JSONObjectWithData: [jsonString dataUsingEncoding:NSUTF8StringEncoding]                                    options: NSJSONReadingMutableContainers                                      error: &error];
读取的时候就可以将获得的NSString值通过系统的方法从json格式转成字典了。


0 0
原创粉丝点击