Как получить доступ к JSON закодированным данным массива с помощью javascript

Как я могу получить доступ к этому ответу с сервера с помощью javascript. Это json закодированные данные.

      [{"cid":"1234","city":"value1","district":"value2","state":"value3"}]

Спасибо заранее.

Это код ajax:

 function cityauto(ctid){
     var city = document.getElementById(ctid);
     if(city.value.length > 3){
         $.ajax({
             type: "GET",
             url: "city.php",
             data: {term: city.value},
             success: function (data){
                 alert(data);
             }
         });
 }

Код HTML:

   <input type="text" name="city" id="cty" onblur="cityauto(this.id);" />

onblur Я получаю выше ответ от php файла в окне предупреждения, теперь мне нужно получить доступ к этим значениям в javscript.

Ответ 1

Предполагая, что JSON возвращается в виде строки:

var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';
// Parse the data as json
var obj = JSON.parse(data)
// Access the ojbect:
console.log(obj);
console.log(obj[0]);     // == Object {cid: "1234", city: "value1", district: "value2", state: "value3"} 
console.log(obj[0].cid); // == 1234

[0] - это доступ к первому объекту внутри JSON, который является массивом. Затем вы просто добавляете .name, где "name" - это имя требуемой переменной. (например, .cid).

Если JSON уже является объектом, вы можете пропустить JSON.parse():

var obj = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];

И получите доступ к нему, как в примере выше.
(В этом случае этот вопрос больше связан с доступом к объектам JavaScript, а не JSON)

В вашем случае вы можете получить доступ к следующим данным:

success: function (data){
    var obj = JSON.parse(data);
    // Do stuff with `obj` here.
}

Ответ 2

Если это единственные данные ответа, вы можете получить доступ как:

var data = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];
console.log(data[0].cid);

# "1234"

Ответ 3

Если вы получите этот ответ со страницы, вы можете попробовать $.getJSON с помощью jQuery

$.getJSON("yourwebsite.com/yourpage", function( data ) {
      console.log(data);
});

Если вы хотите использовать его как переменную, из простого JSON (не относящегося к нему с другой страницы/запроса)

var data = '[{"cid":"1234","city":"value1","district":"value2","state":"value3"}]';

Затем вы можете использовать

$.each( data, function( key, val ) {
          console.log(key + ":" + val);
  });

для доступа к данным json в процедуре foreach...

Или data[key].innerykey например data[0].cid 0 - ваш первый массив данных, а .cid - это ключ, который вы хотите получить, это может быть cid city или что угодно, если у вас больше, вы можете использовать другое число в data[X]