iOS将整个核心数据DB保存为JSON字符串,反之亦然

时间:2012-08-29 23:18:18

标签: iphone ios json ipad core-data

我想知道如何将iOS应用程序上的整个核心数据库序列化为JSON,以便我可以在云中备份它。比用户想要恢复如何恢复JSON字符串并从中生成整个核心数据库?

有可能吗?有什么建议吗?

由于

2 个答案:

答案 0 :(得分:3)

不确定。您可以轻松地使用 NSJSONSerialization 将对象序列化/反序列化为JSON,并 NSURLRequest/Connection 上传或下载JSON。

AFNetworking 是一个流行的网络框架,内置了JSON序列化/反序列化。我还没有使用它,所以我不能亲自担保它,但它看起来非常实用。

NSManagedObject (核心数据库对象)与 NSEntityDescription 关联,其方法为 - (NSDictionary *)attributesByName ,这样可以轻松编写序列化/反序列化方法,而无需为每个类和属性编写显式代码。

我发现Core Data对于我的大部分需求来说都很繁重且复杂,并且通常使用 NSCoding 协议编写本地存储和序列化/反序列化。您可能也会考虑未来的项目。

答案 1 :(得分:0)

看看NSJSONSerialization Class Reference。将JSON放入核心数据肯定可以完成,但需要一个自定义函数将所有数据放在适当的位置。 JSONObjectWithData将获取一个JSON文件并将其放入NSDictionary中。

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://linktojson.com/file.json"]];

NSError *error = nil;

NSDictionary *results = [NSJSONSerialization
                                 JSONObjectWithData:data
                                 options:NSJSONReadingMutableLeaves
                                 error:&error];

从那里你可以将字典中的数据放入核心数据中。

换句话说,它可能已经完成,而dataWithJSONObject可能是最后一步,但到达那里可能会重建上面JSONObjectWithData创建的NSDictionary。