如何从外部文件中检索JSON数据?

时间:2014-04-16 06:51:57

标签: javascript php jquery ajax json

我是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" }
    ]
}

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

3 个答案:

答案 0 :(得分:1)

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

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

    // alternate
    // alert(data.tdata[0]["name"]); // = 'abi'
})

答案 1 :(得分:0)

使用 jQuery.each()

var all_data=data.tdata;

现在访问内部数据

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

<强>输出

5 abi
2 bavi
3 citi

答案 2 :(得分:-1)

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

实施例

$.parseJSON(your_json_string);

这将转换为对象