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

Javascript 如何将单个JSON文件加载到SproutCore模型中?,javascript,model,sproutcore,sproutcore-2,Javascript,Model,Sproutcore,Sproutcore 2,我有一个JSON文件,其结构不统一,无法加载到单个模型中。它有一个屏幕的数据。典型的JSON结构如下所示 { "Model1":{ "key1":"value1", "key2" : "value2" }, "Model2":[ { "key1":"value1", "key2" : "value2" }, { "key1":"value1", "ke

我有一个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。我怎样才能做到这一点呢

我所做的研究:

我在谷歌上搜索过“如何将单个JSON加载到SproutCore模型?”。然而,我没有得到任何回答我问题的结果。我还搜索了堆栈溢出。但我也没有得到任何结果。因此,我没有尝试任何方法/想法/输入/方法,我没有任何代码示例来显示我所尝试的内容。

假设:

  • 您的json是字符串
  • 你有一个购物中心
  • 您的模型被定义为SC.记录实例(例如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,服务器将其分配给您的模型实例