Как динамически генерировать JSON в цикле с Js?

Я делаю проект с PebbleJS.

я нуб и учусь понемногу.. поэтому после получения JSON с веб-страницы и размещения всех данных в объектах localStorage я хочу поместить свои переменные в окно UI.Menu, которое по сути является JSON переменная, как вы можете видеть в примере ниже:

var main = new UI.Menu({
sections: [{
  items: [
  {
    title: 'street name a',
    subtitle: 'ID 1121'
  }, {
    title: 'street name b',
    subtitle: 'ID 1431'
  }, {
    title: 'street name c',
    subtitle: 'ID 1907'
  },{
    title: 'street name d',
    subtitle: 'ID 1002'
  },{
    title: 'street name e',
    subtitle: 'ID 1330'
  },

        ]
}]
}); 

я попытался сделать цикл внутри, но выдает ошибку... (псевдокод)

for (var x=0;x<10;x++)
  {
    title: localStorage.title+x,
    subtitle: 'ID '+localStorage.title+x
  }

Мне нужно сделать это без JQuery или других JS Frameworks, только чистый Javascript...

1 ответ

Решение

Если я правильно понимаю ваш вопрос, вы хотите создать структуру данных из вашего первого примера кода с помощью цикла.

структура данных - это объект с некоторыми свойствами и подобъектами, такими как массивы. структура просто определяет объекты в вашем коде. в этом нет никакого участия.

json - это подмножество javascript, которое используется для обмена структурами данных. он состоит из простых текстовых файлов с объявлениями объектов javascript и обычно анализируется для создания структуры данных в памяти. объявляя вашу структуру данных в коде, нет необходимости использовать дополнительный шаг разбора json.

чтобы установить исходную структуру, как указано выше, вы должны сделать:

var data = {
    sections: [
        {
            items: []
        }
    ]
}

чем вы получили бы массив элементов:

var items = data.sections[0].items

к этому массиву вы можете добавить элементы с помощью вашего цикла:

for ( var x = 0; x < 10; x++ ) {
    var item = {
      title: localStorage.title + x,
      subtitle: 'ID ' + localStorage.title + x
    };

    items.push(item);
}

Теперь вы можете создать свой UI.Menu с объектом данных.

var main = new UI.Menu(data)
Другие вопросы по тегам