objective-c – 如何将JSON对象保存到Core Data?
我是Core Data的新手,我设计了一个基于导航的应用程序,我使用的一些数据是在运行时创建的(来自URL通过
JSON).我花了几天时间搜索了一些教程,但还没有意识到如何将传入的JSON数据保存到我的核心数据模型中的实体(或事件?)中.我获取DetailViewController类中的数据,我需要将此数据保存到Core Data(我已经准备了一个具有7个属性的实体).任何人都可以帮忙吗?(如果你知道一个很好的教程或示例代码,我会很高兴)
编辑这可能有点具体,但我真的遇到麻烦,只需要一些帮助. 注意:我喜欢周围很多,但找不到任何关于像我这样的应用程序的答案和教程 解决方法
最好的方法是创建与JSON结构相对应的实体.最简单的是当每个JSON对象成为实体时,数组成为实体数组.但是,要合理,并且不要为JSON子对象引入太多的过度杀伤,这些子对象基本上是其超级对象的一部分.
创建实体后,您可以从解析和翻译开始.使用一些JSON框架(从iOS5开始,有一个来自Apple)并将JSON字符串解析为对象树,其中根项目是NSArray或NSDictionary,子元素将是NSArray,NSDictionary,NSNumber,NSString或NSNull. 在迭代循环中逐个遍历它们,并根据您的核心数据实体属性分配相应的值.您可以在此处使用NSKeyValueCoding,并避免过多手动映射属性名称.如果您的JSON属性与实体属性具有相同的名称,您将能够遍历所有字典元素并将它们解析为同名的属性. 例 我在类似情况下的解析代码如下: NSDictionary *parsedFeed = /* your way to get a dictionary */; for (NSString *key in parsedFeed) { id value = [parsedFeed objectForKey:key]; // Don't assign NSNull,it will break assignments to NSString,etc. if (value && [value isKindOfClass:[NSNull class]]) value = nil; @try { [yourCreatedEntity setValue:value forKey:property]; } @catch (NSException *exception) { // Exception means such attribute is not defined in the class or some other error. } } 此代码将在微不足道的情况下工作,但是,可能需要根据您的需要进行扩展: >使用某些自定义映射,以防您希望将JSON值放在不同命名的属性中. 我不认为在这个答案的范围内深入研究这些更高级的问题是合理的,因为它会过多地扩展它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |