0

我有一个 JSON 文件,其结构不统一,无法加载到单个模型中。它有一个屏幕的数据。典型的 JSON 结构如下所示。

{
   "Model1":{
      "key1":"value1",
      "key2" : "value2"
   },
   "Model2":[
      {
        "key1":"value1",
        "key2" : "value2"
      },
      {
         "key1":"value1",
         "key2" : "value2"
         "subModel":[
            {
           "key1":"value1",
           "key2" : "value2"
            },
            {
                       "key1":"value1",
                "key2" : "value2"
            }
         ]
      }
   ]

现在我必须划分这个 JSON 并将其加载到不同的模型中。从服务器我只会得到一个 JSON。如何在SproutCore中实现它?

我做过的研究:

我在 Google 中搜索过“如何将单个 JSON 加载到 SproutCore 模型中?”。但是,我没有得到任何回答我的问题的结果。我也在 Stack Overflow 上搜索过。但我在这里也没有得到任何结果。因此,我没有尝试任何方法/想法/输入/方法,我没有任何代码示例来展示我尝试过的内容。

4

1 回答 1

1

假设:

  1. 你的 json 是字符串。
  2. 你有一个 SC.Store
  3. 您的模型被定义为 SC.Record 实例(例如 App.Model1)

那么你可以做

var json = JSON.parse(yourJsonString);
var model1 = json["Model1"];
var model2Arr = json['Model2'];

//  loadRecord for a single instance
store.loadRecord(App.Model1, model1, model1.serverIdProp);
// loadRecords for a bunch of instances
store.loadRecords(App.Model2, model2Arr, model2Arr.getEach('serverIdProp'));

注意:您的 json 应该具有服务器分配给您的模型实例的某种 id。

于 2013-02-07T14:16:29.207 回答