ajax:从json数组中提取json对象

时间:2014-07-21 09:13:09

标签: javascript php jquery ajax json

JSON(来自api的数组内部):

[{"id":"001", "name":"john", "age":"40"}, {"id":"002", "name":"jane", "age":"30"}]

的Ajax:

  $.ajax({                                      
  url: 'interface_API.php',                                                              
  dataType: 'json',                    
  success: function(data)         
  {
    for(var i in data){
        var row = data[i];

        var id = row[0];            
        var name = row[1];
        var age = row[2];

    $('#output').append("<tr width='50%'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td></tr>"); 
    }
  } 
});

API使用它来构造:

if(mysqli_num_rows($output)){
     while($row = mysqli_fetch_assoc($output)){
         $json[] = $row;
     }
}

然而,我的输出是未定义的&#39;对每个.append重复

如何从数组中提取每个json对象&amp;附加到页面?

3 个答案:

答案 0 :(得分:1)

改变这个:

var id = row[0];            
var name = row[1];
var age = row[2];

到此:

var id = row['id'];            
var name = row['name'];
var age = row['age'];

或者这个:

var id = row.id;
var name = row.name;
var age = row.age;

因为你已经在这里循环:

for(var i in data){
    var row = data[i]; // <----here

所以你只需要用js对象中的键引用它。

答案 1 :(得分:0)

您可以像这样更改for循环:

$.ajax({                                      
  url: 'interface_API.php',                                                              
  dataType: 'json',                    
  success: function(data)         
  {
    for(var i in data){
        var row = data[i];

        var id = row.id;            
        var name = row.name;
        var age = row.age;

$('#output').append("<tr width='50%'><td>"+id+"</td><td>"+name+"</td><td>"+age+"</td></tr>"); 
}
} 
});

答案 2 :(得分:0)

请在检索时使用密钥识别json对象

var list=[
        {"id":"1","text":"test1"},
        {"id":"2","text":"test2"},
        {"id":"3","text":"test3"},
        {"id":"4","text":"test4"}

         ]


    alert(list[2].id)