Посредством php получаю такой массив
[{"id":"1","name":"Первый пункт"},{"id":"2","name":"Второй пункт"},{"id":"3","name":"Третий пункт"}]
как его можно распарсить в javascript, чтобы дальше с ним работать?
P.S. имею ввиду как к нему обратиться в итоге, потому что объявляю его в переменную.
var obj2=
obj2 = JSON.parse(obj2);
А теперь не могу понять как например обратиться к id 2 и вывести name
А теперь не могу понять как например обратиться к id 2 и вывести name
Для этой цели JSON.parse
не нужен:
let json = [{"id":"1","name":"Первый пункт"},{"id":"2","name":"Второй пункт"},{"id":"3","name":"Третий пункт"}];
let obj = json.find(x => x.id === '2');
if (!obj) {
console.log('object with id = 2 not found');
} else {
let name = obj.name;
if (typeof name === "undefined")
console.log('object with id = 2 not have "name"');
else
console.log(name);
}
Метод JSON.parse()
при успешном выполнении возвращает JS-объект (экземпляр Object или Array).
В данном случае, результатом будет Array, а если конкретнее - массив объектов:
const jsonStr = '[{"id":"1","name":"Первый пункт"},{"id":"2","name":"Второй пункт"},{"id":"3","name":"Третий пункт"}]';
let arr = JSON.parse(jsonStr); // [[object Object], [object Object], [object Object]]
Обращаться с этим массивом можно точно так же, как и с любым другим:
// доступ к элементу по его индексу
let firstEntry = arr[0]; // [object Object] { id: "1", name: "Первый пункт" }
console.log(firstEntry.name); // "Первый пункт"
// поиск элемента перебирающим методом
let entry = arr.find(obj => obj.id == 2);
if (entry)
console.log(entry.name);
else
console.log('Объект с id:2 в массиве не найден');
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab