如何使用javascript访问数组的JSON编码数据

Nik*_*ksD 15 javascript

如何使用javascript从服务器访问此响应.这是json编码的数据.

      [{"cid":"1234","city":"value1","district":"value2","state":"value3"}]
Run Code Online (Sandbox Code Playgroud)

提前致谢.

这是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);
             }
         });
 }
Run Code Online (Sandbox Code Playgroud)

Html代码:

   <input type="text" name="city" id="cty" onblur="cityauto(this.id);" />
Run Code Online (Sandbox Code Playgroud)

onblur我在警告框中得到了来自php文件的响应,现在我需要在javscript中访问该值.

Cer*_*rus 20

假设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
Run Code Online (Sandbox Code Playgroud)

[0]是访问JSON,这是一个数组中的第一个对象.然后你只需添加.name,'name'是你想要的变量的名称.(像.cid).

如果JSON已经是对象,则可以跳过JSON.parse():

var obj = [{"cid":"1234","city":"value1","district":"value2","state":"value3"}];
Run Code Online (Sandbox Code Playgroud)

并像上面的例子一样访问它.
(在这种情况下,这个问题更多的是关于访问JavaScript对象,而不是JSON)

在您的情况下,您可以访问如下数据:

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