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]]);
};

С parse.JSON

var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );