Элементы доступа в объекте json, например массив
Возможный дубликат:
У меня есть вложенная структура данных /JSON, как я могу получить доступ к определенному значению?
У меня есть json-объект, например, следующий:
[
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"], ["57.893162","16.406090"]
]
Он состоит из 4 "уровней собственности" (город, дата, описание и координаты).
Что я хочу сделать, так это иметь доступ к этим уровням, например, в таком массиве:
var coordinates = jsonObject[4];
Это явно не работает, поэтому мой вопрос: как я могу это сделать?
Нужно ли его декодировать или что-то еще, и если да, то как?
Ответы
Ответ 1
Я нашел прямой способ решить это, используя JSON.parse.
Предположим, что json ниже находится внутри переменной jsontext.
[
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"], ["57.893162","16.406090"]
]
Решение таково:
var parsedData = JSON.parse(jsontext);
Теперь я могу получить доступ к элементам следующим образом:
var cities = parsedData[0];
Ответ 2
Кажется, что это мульти-массив, а не объект JSON.
Если вы хотите получить доступ к объекту, подобному массиву, вы должны использовать какой-то ключ/значение, например:
var JSONObject = {
"city": ["Blankaholm, "Gamleby"],
"date": ["2012-10-23", "2012-10-22"],
"description": ["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
"lat": ["57.586174","16.521841"],
"long": ["57.893162","16.406090"]
}
и получить к нему доступ:
JSONObject.city[0] // => Blankaholm
JSONObject.date[1] // => 2012-10-22
and so on...
или
JSONObject['city'][0] // => Blankaholm
JSONObject['date'][1] // => 2012-10-22
and so on...
или, в крайнем случае, если вы не хотите изменять свою структуру, вы можете сделать что-то вроде этого:
var JSONObject = {
"data": [
["Blankaholm, "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har.],
["57.586174","16.521841"],
["57.893162","16.406090"]
]
}
JSONObject.data[0][1] // => Gambleby
Ответ 3
Я заметил пару синтаксических ошибок, но кроме этого, он должен работать нормально:
var arr = [
["Blankaholm", "Gamleby"],
["2012-10-23", "2012-10-22"],
["Blankaholm. Under natten har det varit inbrott", "E22 i med Gamleby. Singelolycka. En bilist har."], //<- syntax error here
["57.586174","16.521841"], ["57.893162","16.406090"]
];
console.log(arr[4]); //["57.893162","16.406090"]
console.log(arr[4][0]); //57.893162
Ответ 4
var coordinates = [jsonObject[3][0],
jsonObject[3][0],
jsonObject[4][1],
jsonObject[4][1]];