在核心数据中使用父 - >子关系保存动态生成的JSON数据吗?

时间:2016-03-24 11:39:05

标签: ios json core-data orm one-to-many

我在JSON响应中有动态子对象来填充首选项数据,每个首选项可以有“子”,并且可以有多个对象(以嵌套方式,详细介绍)。我需要将这些数据保存到Core数据中,然后从那里加载。另外,当用户在路上选择一个时,我需要保存用户选择。

  1. 在实体模型中实施实体关系以保存所有这些数据的最佳方法是什么?

  2. 对于这种情况,这是一种不错的JSON格式吗?

  3. EX:手机 - >三星 - > s3(用户点击时可以更进一步)

        preferences =     [
            {       
              id = 1;
              name = Mobiles;
              children = 
                [
                    { 
                        id = 3;
                        name = Samsung;
                        children = [];
                    },
                    { 
                        id = 4;
                        name = Nokia;
                        children = [];
                    }
               ] 
            },
            {
                id = 2;
                name = Electronics;
                children =  [
                    { 
                        id = 5;
                        name = Samsung Curve TV;
                        children = [];
                    }
                ]
      }
        ]
    

1 个答案:

答案 0 :(得分:2)

ad 2.使用此数据格式,您将需要使用递归或堆栈来获取单个实体。

我建议采用略有不同的方法。

[
  {
    "id": 1,
    "name": "Mobiles"
  },
  {
    "id": 2,
    "name": "Electronics",
    "parent_id": 1
  },
  {
    "id": 3,
    "name": "Samsung"
    "parent_id": 1
  },
  {
    "id": 4,
    "name": "Nokia"
  },
  {
    "id": 5,
    "name": "Samsung Curve TV"
    "parent_id": 2
  }
]

使用这种结构,您不必使用递归或堆栈。 单个枚举就足以将数据插入CoreData。

广告1.您的实体需要具有“父母”和“子女”关系。