编辑这可能有点具体,但我真的遇到麻烦,只需要一些帮助.
我的数据来自一种安静的服务器(我用PHP编写),首先是用户输入他/她的登录信息(我之前保存到服务器上的数据库),当响应数据到来时我将使用不同的不同视图中的元素(例如,user_ID将用于视图,buttonData等用于其他视图).我的问题是,如何将JsON数据保存到我的核心数据模型中(目前有树实体).提前致谢
注意:我喜欢周围很多,但找不到任何关于像我这样的应用程序的答案和教程
解决方法 最好的方法是创建与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值放在不同命名的属性中.
>如果您的JsON具有子对象或子对象数组,则需要检测这些情况,例如在setter中,并在更深层次上启动新的解析.否则,在我的示例中,您将面临将NSDictionary对象分配给NSManagedobject的情况.
我不认为在这个答案的范围内深入研究这些更高级的问题是合理的,因为它会过多地扩展它.
总结以上是内存溢出为你收集整理的objective-c – 如何将JSON对象保存到Core Data?全部内容,希望文章能够帮你解决objective-c – 如何将JSON对象保存到Core Data?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)