JQuery разбор массива JSON
у меня есть JSON
выводится следующим образом:
["City1","City2","City3"]
Я хочу, чтобы каждый из названий городов, как я могу это сделать?
$.getJSON("url_with_json_here",function(json){
});
EDIT:
$.getJSON('url_here', function(data){
$.each(data, function (index, value) {
$('#results').append('<p>'+value+'</p>');
console.log(value);
});
});
выше не работает, значения не выводятся.
5 ответов
getJSON()
также будет анализировать JSON для вас после извлечения, поэтому с тех пор вы работаете с простым массивом Javascript ([]
отмечает массив в JSON). В документации также есть примеры того, как обрабатывать извлеченные данные.
вы можете получить все значения в массиве С помощью for
цикл:
$.getJSON("url_with_json_here", function(data){
for (var i = 0, len = data.length; i < len; i++) {
console.log(data[i]);
}
});
Проверьте консоль, чтобы увидеть вывод ( Chrome, Firefox/Firebug, IE).
jQuery также предоставляет $.each()
для итераций, так что вы также можете сделать это:
$.getJSON("url_with_json_here", function(data){
$.each(data, function (index, value) {
console.log(value);
});
});
использовать parseJSON
метод:
var json = '["City1","City2","City3"]';
var arr = $.parseJSON(json);
тогда у вас есть массив с именами города.
var dataArray = [];
var obj = jQuery.parseJSON(yourInput);
$.each(obj, function (index, value) {
dataArray.push([value["yourID"].toString(), value["yourValue"] ]);
});
это мне очень помогает: -)
var dataArray = [];
var obj = jQuery.parseJSON(response);
for( key in obj )
dataArray.push([key.toString(), obj [key]]);
};