将JSON数据存储到Core Data的最佳方法

时间:2014-09-18 11:36:51

标签: ios objective-c json core-data

我是Core数据的新手,并且想知道哪个是存储Json数据的最佳方式:

{"LG" : 
      { "Nexus 5" :
                  { "variant"s : [
                                  {"model" : "Nexus 5 16gb"},
                                  {"model" : "Nexus 5 32gb"}
                                 ]
                  },
      },
      { "Nexus 4" :
                  { "variant"s : [
                                  {"model" : "Nexus 4 16gb"},
                                  {"model" : "Nexus 4 32gb"}
                                 ]
                  },
      },
}, ...... so on..

我在制作NSDictionary后尝试将整个数据存储为Attribute Type "Transformable",但我遇到了一些错误,例如NSUnknownKeyException

我希望将数据存储为NSString,并使用一些Relationships

有人可以告诉我存储相同内容的最佳方法是什么,而不是将整个数据保存为NSDictionary

3 个答案:

答案 0 :(得分:1)

我的两分钱。

Brand< - >> Model< - >> Variant

其中Brand将包含LG等,Model将包含Nexus 4等,Variant将包含Nexus 5 16GB等。

品牌与Model有很多关系。 ModelVariant有很多关系。

请参阅我以前的答案,了解如何设置多对多关系:Setting up a parent-child relationship in Core Data

无论如何你应该Apple Apple和google一点点。您可以找到很多材料(例如Core Data from Scratch: Relationships and More Fetching)。

答案 1 :(得分:1)

我建议阅读有关核心数据和一般关系数据库的内容,以避免获得可能绝对垃圾的设计。核心数据模型应该是一切的核心。这就是你需要设计的东西。

您在JSON中接收数据的方式非常次要。暂时忽略JSON。首先,您需要正确设计数据库。一旦你知道了,通过JSON提供给你的东西就很简单了。

我有一张桌子" Variant"目前只有一个带有名称字符串的变体,例如" Nexus 5 16gb"。然后我会有一张桌子"电话"与制造商有关,名称的字符串,以及" Variant"的一对多关系。然后我会有一个表"制造商",其中包含名称的字符串,以及" Phones"的一对多关系。

答案 2 :(得分:1)

最好的方法?不要将json存储为字符串!

在解析

时将json转换为有效的对象图