如何将单个JSON文件加载到SproutCore模型中?

时间:2013-01-26 14:53:32

标签: javascript model sproutcore sproutcore-2

我有一个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中实现它?

我做过的研究:

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

1 个答案:

答案 0 :(得分:1)

假设:

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

    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。