1

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

是否可以?有什么建议吗?

谢谢

4

2 回答 2

3

当然。您可以轻松地使用JSON 序列化/反序列化对象,以及上传或下载 JSON。 NSJSONSerialization NSURLRequest/Connection

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

NSManagedObject (Core Data 基础对象)有一个与之关联的方法,它应该可以轻松编写序列化/反序列化方法,而无需为每个类和属性编写显式代码。 NSEntityDescription - (NSDictionary *)attributesByName

我发现 Core Data 对我的大部分需求来说既繁重又复杂,并且通常使用该协议编写本地存储和序列化/反序列化。您也可以为未来的项目考虑这一点。 NSCoding

于 2012-08-29T23:34:14.050 回答
0

看看NSJSONSerialization 类参考。将 JSON 放入 Core Data 肯定是可以做到的,但它需要一个自定义函数将所有数据放在适当的位置。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];

从那里您可以将字典中的数据放入 Core Data。

相反,它可能可以完成并且dataWithJSONObject可能是最后一步,但到达那里可能会沿着重建JSONObjectWithData上面创建的 NSDictionary 的路线。

于 2012-08-29T23:37:41.187 回答