Как загрузить один файл JSON в модель SproutCore?

У меня есть один файл 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?". Тем не менее, я не получил никаких результатов, которые отвечают на мой вопрос. Я также искал на переполнение стека. Но я тоже не получил никаких результатов. Поэтому у меня не было подходов / идей / входов / подходов, у меня нет примера кода, чтобы показать, что я пробовал.

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 должен иметь какой-то идентификатор, который сервер назначает экземплярам вашей модели.

Другие вопросы по тегам