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

ajax: extract json object from array of json

本文关键字:json 提取 对象 数组 Ajax      更新时间:2023-09-26

JSON (inside array from 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;
     }
}

然而,我的输出是"未定义"重复每个.append

如何从数组&追加到页面上?

改变这个:

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对象中用key引用它

你可以这样改变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>"); 
}
} 
});

在检索

时请使用键来识别json对象
var list=[
        {"id":"1","text":"test1"},
        {"id":"2","text":"test2"},
        {"id":"3","text":"test3"},
        {"id":"4","text":"test4"}
         ]

    alert(list[2].id)