JSuery Parsing JSON array
У меня есть вывод 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);
});
});
Вышеприведенное не работает, никакие значения не выводятся.
Ответы
Ответ 1
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);
});
});
Ответ 2
Используйте метод parseJSON
:
var json = '["City1","City2","City3"]';
var arr = $.parseJSON(json);
Затем у вас есть массив с названиями городов.
Ответ 3
var dataArray = [];
var obj = jQuery.parseJSON(yourInput);
$.each(obj, function (index, value) {
dataArray.push([value["yourID"].toString(), value["yourValue"] ]);
});
мне это очень помогает:-)
Ответ 4
var dataArray = [];
var obj = jQuery.parseJSON(response);
for( key in obj )
dataArray.push([key.toString(), obj [key]]);
};
Ответ 5
с parse.JSON
var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );