Использование массива JSON с объектами в JavaScript
У меня есть функция, которая получает массив JSON с объектами. В этой функции я хочу пройтись по массиву, получить доступ к свойствам и использовать их. Например, переменная, которую я передаю в функцию, выглядит так:
[{
"id": 28,
"Title": "Швеция"
}, {
"id": 56,
"Title": "США"
}, {
"id": 89,
"Title": "Англия"
}]
Функция будет выглядеть так:
function test(myJSON) {
// Возможно, мне нужно будет распарсить myJSON?
// И затем я хочу пройтись по массиву и получить доступ к ID и Title
}
Есть ли у кого-нибудь предложения, как я могу решить эту задачу?
4 ответ(ов)
Ваш массив данных dataArray
выглядит следующим образом:
[
{
"id":28,
"Title":"Швеция"
},
{
"id":56,
"Title":"США"
},
{
"id":89,
"Title":"Англия"
}
]
В таком случае вы можете использовать parseJson
так:
$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {
var ID = this.id;
var TITLE = this.Title;
});
Этот код преобразует массив объектов в строку JSON и затем обратно в объекты, позволяя вам итерироваться через каждый элемент массива. Внутри цикла вы можете получить ID
и TITLE
для каждого объекта.
Ваш вопрос кажется немного неполным, но я предполагаю, что вы ищете способ сделать ваш JSON доступным для вашего кода.
Если у вас есть строка JSON, как в примере выше, тогда вам просто нужно сделать следующее:
var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');
После этого вы сможете получить доступ к этим переменным с помощью чего-то вроде jsonObj[0].id
и так далее.
Если это не то, что вы имели в виду, дайте мне знать, и я постараюсь помочь.
@Swapnil Godambe
У меня это работает, если убрать JSON.stringify
. Вот так:
$(jQuery.parseJSON(dataArray)).each(function() {
var ID = this.id;
var TITLE = this.Title;
});
Проверьте, возможно, в вашем случае использование JSON.stringify
вызывает проблемы.
Вы можете использовать следующий код для создания HTML-таблицы из массива объектов в JavaScript. Этот код создает таблицу и заполняет её данными из массива datas
, который содержит объекты с id
и Title
.
var datas = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];
document.writeln("<table border='1' width='100%'>");
document.writeln("<tr><td>No Id</td><td>Title</td></tr>");
for(var i=0; i < datas.length; i++){
document.writeln("<tr><td>" + datas[i].id + "</td><td>" + datas[i].Title + "</td></tr>");
}
document.writeln("</table>");
Объяснение кода:
Создание массива данных: Массив
datas
содержит объекты с идентификаторами и названиями стран.Начало таблицы: С помощью
document.writeln
создается таблица с рамкой и шириной 100%.Заголовки таблицы: Первая строка таблицы содержит заголовки "No Id" и "Title".
Заполнение данных: Цикл
for
перебирает каждый объект в массивеdatas
и выводит значениеid
иTitle
в ячейках таблицы.Закрытие таблицы: В конце таблица закрывается с помощью
</table>
.
Таким образом, код создает HTML-разметку для отображения данных в виде таблицы. Обратите внимание, что данный метод вставляет HTML в документ, поэтому рекомендуется использовать его с осторожностью, особенно если данные могут поступать из ненадежного источника, чтобы избежать уязвимостей, связанных с XSS.
Преобразование объекта JS в строку JSON
Как сравнить массивы в JavaScript?
Как прочитать JSON-файл в память сервера?
Как использовать requirejs для загрузки статического JSON-файла?
Использование immutability-helper в React для установки ключа переменной объекта