如何最好地将JSON解析为Core Data?

时间:2012-10-24 23:11:10

标签: iphone json core-data iphonecoredatarecipes

我无法理解以下内容: 我如何才能最好地将JSON解析为CoreData?

我已经知道如何解析JSON并对其进行反序列化,但是如何将结果导入CoreData?

目前我有LoginViewController发送NSURLRequest用户名& pw到web服务器并接收echo,这是一个JSON文件。

我已经设置了AppDelegate.h&使用CoreDataStack的AppDelegate.m

我的问题:如何从LoginViewController获取NSDictionary(JSON-result)到数据库?我是否必须在应用代理中调用方法?或者我应该将CoreDataStack置于LoginViewController

2 个答案:

答案 0 :(得分:0)

Alex,尝试使用Restkit,它非常有效地将JSON响应直接保存到Core Data中 使用URL请求获取JSON,它将整个响应映射到Core Data。您甚至可以在持久之前修改有效负载 在广泛使用AFNetworking的帮助下,内部处理通信 需要一点初始配置,但结果值得付出努力!

答案 1 :(得分:-1)

听起来你真正想知道的是如何从解析JSON的代码中获取对Core Data堆栈的引用。如果是这种情况,快速而肮脏的方式就是向应用代表询问它。这就像

那样简单
NSManagedObjectContext *context = [[[UIApplication sharedApplication] delegate] managedObjectContext];

您可能需要#import "AppDelegate.h"并对delegate调用的结果进行类型转换以使编译器保持方便。

在您的登录视图控制器中设置核心数据堆栈几乎肯定是一个坏主意 - 除非这是您使用它的唯一地方(我打赌不是这种情况)。尽管如此,将它设置在除应用代表之外的其他位置通常是个好主意。例如,一个新类,负责管理堆栈,并实现您需要的任何一般核心数据相关方法。

如果将NSDictionary中的数据导入托管对象实际上是个问题,我去年在Cocoa is my Girlfriend写了这篇文章,这个建议仍然存在。