JsonAPI与Ember Data嵌套关系

时间:2015-09-04 15:27:34

标签: ember.js ember-data json-api

我正在尝试使用嵌套关系处理JSONAPI响应。 Ember-Data目前正在获取“included”属性中的所有数据并将其全部推送到正确的模型中,但我的“转录”对象和“cuepoint”对象之间的关系不起作用。 “视频”和“转录”对象之间的关系正常工作,所以它特别是我需要帮助的嵌套部分。

以下是我正在使用的数据示例:

{
   "data":{
      "type":"video",
      "id":"55e0687ba1f9e8032c549680",
      "attributes":{
         "title":"Test32"
      },
      "relationships":{
         "transcriptions":{
            "data":[
               {
                  "relationships":{
                     "cuepoints":{
                        "data":[
                           {
                              "id":"55e9b62446942224a0f456cc",
                              "type":"cuepoint"
                           }
                        ]
                     }
                  },
                  "id":"55e0687ba1f9e8032c549680-transcription-0",
                  "type":"transcription"
               }
            ]
         }
      }
   },
   "included":[
        {
           "type":"transcription",
           "id":"55e0687ba1f9e8032c549680-transcription-0",
           "attributes":{
              "language":"English"
           }
        },
      {
         "type":"cuepoint",
         "id":"55e9b62446942224a0f456cc",
         "attributes":{
            "cueIndex":0,
            "startTimeMilliseconds":0,
            "endTimeMilliseconds":4400,
            "text":"- The first one is the L'Oreal Paris Extraordinary Oil."
         }
      }
   ]
}

知道如何处理这件事吗?

1 个答案:

答案 0 :(得分:2)

虽然我没有测试过这种特殊情况,但您的JSON似乎不合规。

在顶级begin <nil> end &{1} begin &{2} end &{2} 键下,放置“关系”对象,在relationships放置“资源”对象。资源对象包含关系定义。

简而言之,将嵌套关系移到顶级included之外并转移到relationships