Как динамически генерировать 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)