从外部文件检索JSON数据时,如何访问该数据


How can I access JSON data when its retrieved from an external file?

我是jQuery的新手。我想访问从PHP文件中检索到的JSON数据。

我的PHP代码是:

$serverName = "(local)";     
$connectionInfo = array( "Database"=>"sample");    
$conn = sqlsrv_connect( $serverName, $connectionInfo);    
if ($conn) {
     echo "Connection established.<br />";
}
else {
     echo "Connection could not be established.<br />";
     die(print_r(sqlsrv_errors(), true));
}
$str = "Select * from samp2";
$res = sqlsrv_query($conn,$str) or die("Error !");
$response = array();
while($row = sqlsrv_fetch_array($res, SQLSRV_FETCH_ASSOC)) {
    $response['tdata'][] = $row;
}
return json_encode($response);

php文件的输出为:

{
    "tdata":[
        { "id": 5, "name": "abi" },
        { "id": 2, "name": "bavi" },
        { "id": 3, "name": "citi" }
    ]
}

我的jQuery代码是:

$(document).ready(function(e) {
    document.getElementById('a1').innerHTML = "divs";
    $.get('db2.php', function(data) {
        alert("data : " + data);
    }).error(function() {
        alert("Error ! ");
    });
});
<body>
    <div id="a1"></div>
</body>

jQuery的输出是

{
    "tdata": [
        {"id": 5, "name": "abi" },
        {"id": 2, "name": "bavi" },
        {"id": 3, "name": "citi" }
    ]
}

请告诉我应该如何访问这些数据。

您的$.get处理程序中已经有了数据。例如,您可以混合使用点和数组表示法来从返回数组中的第一个对象获取信息:

$.get('db2.php', function(data) {
    alert(data.tdata[0].name); // = 'abi'
    // alternate
    // alert(data.tdata[0]["name"]); // = 'abi'
})

使用jQuery.each()

var all_data=data.tdata;

现在访问内部数据

$.each(all_data,function(i,val){
alert(val.id+" "+val.name);
});

输出

5 abi
2 bavi
3 citi

解析JSON字符串时可以访问JSON数据

示例

$.parseJSON(your_json_string);

这将转换为对象