【问题标题】:Best way to store JSON data in to Core Data将 JSON 数据存储到 Core Data 的最佳方式
【发布时间】:2023-04-08 22:53:02
【问题描述】:

我是 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..

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

我想将数据存储为NSString并使用一些Relationships。

有人能告诉我什么是存储相同数据而不是将所有数据保存为NSDictionary 的最佳方法吗?

【问题讨论】:

    标签: ios objective-c json core-data


    【解决方案1】:

    我的两分钱。

    Brand > Model > Variant

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

    品牌与Model 有很多关系。 Model 与 Variant 有一对多的关系。

    关于如何建立多对多关系,请参考我的上一个回答:Setting up a parent-child relationship in Core Data。

    无论如何,您应该使用 Apple doc 和 google 一下。你可以从那里找到很多材料(例如Core Data from Scratch: Relationships and More Fetching)。

    【讨论】:

      【解决方案2】:

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

      如何以 JSON 格式接收数据是非常次要的。暂时完全忽略 JSON。首先,您需要正确设计数据库。一旦你有了这些,通过 JSON 传递给你的东西就很简单了。

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

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-03-03
          • 2019-01-15
          • 1970-01-01
          • 2011-12-10
          • 2011-06-09
          • 1970-01-01
          • 2016-11-06
          • 1970-01-01
          相关资源
          最近更新 更多