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

本文分享了将字典转换为NSData格式,并将其写入文件的方法。同时提供了从文件读取并解析为字典的过程。重点突出了JSON数据在文件存储与检索中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近做一个项目遇到一个问题就是,我在读取之前写好的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格式转成字典了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值