IOS:存储一个带有数组和对象嵌套的json

时间:2014-02-14 16:50:26

标签: ios database core-data nsarray nsdictionary

我有一个关于使用核心数据创建数据库的问题。 在我的应用程序第一次启动时,我应解析一些json以获取一些数据插入核心数据db。 我的json文件以这种方式构造:(我只显示我的json的一个元素)

[{"id":"s1",
"n":"Name hotel",
"id_loc":["l1","l2","l3","l4"],
"val":3,
"tel1":"12345678",
"tel2":"12345678",
"obj":
{"id":"o1",
"n":"Name",
"des":"description",
"flag":"red"}
}]

据我所知,我可以将其视为coredata中的一个实体,并将所有元素视为属性,很明显。 现在你可以看到我的json中有一个数组“id_loc”和一个对象(或字典)“obj”。 在核心数据中,管理这两个元素的方法是什么? 我想“obj”可以作为一个新实体来管理,而“id_loc”,在我的核心数据DB中设置它的方式是什么? 你能帮助我吗? 感谢

1 个答案:

答案 0 :(得分:0)

对于obj,按照您的建议:创建一个新实体,并在两个实体之间建立关系。

id_loc取决于您需要如何使用数据。

  • 如果您只想在查找实例时使用该数据(也就是说,您可能显示此数据但不需要搜索它),则可以将字符串存储在{{ 1}}。在Core Data模型编辑器中创建属性 transformable ,Core Data将读取/写入完整的数组。

  • 如果您需要根据NSArray值查找数据(例如:查找id_loc包含id_loc的每个对象),最好的方法是创建另一个实体保持l3的值,并与该新实体建立多对多的关系。