3

我有一个 php 程序,我只是在其中测试一些示例数据。]我在元素列表后收到错误消息。我怎样才能读到这个?

$dataDetailsList = array();
array_push($dataDetailsList, array('a' =>'1','b' =>'2','c' =>'3','d' =>'4','e' =>'5'));
echo json_encode(array("DataDetailsList"=>$dataDetailsList));

然后在我的 jQuery 处理器中,我正在这样做。

function requestData() {
    $.ajax({
        url: 'live-server-data.php',
        success: function(data) {
            //alert(json);
            var jsonData = eval(" (" + data + ") ");
        },
        cache: false
    });
4

3 回答 3

4
function requestData() {
    $.ajax({
        url: 'live-server-data.php',
        success: function(data) {
            //alert(json);
            var jsonData = data;

        },
        cache: false,
        dataType: 'json' //data type that it will return 
    });
}
于 2012-05-24T16:36:20.167 回答
3

不要使用eval是邪恶的。而不是这种用法:

JSON.parse(data); // not supported in IE7 and below

我认为你需要尝试

dataType: 'json'

那是,

$.ajax({
    url: 'live-server-data.php',
    dataType: 'json',
    success: function(data) {
        var jsonData = data;
        console.log(jsonData);
        $.each(jsonData.DataDetailsList, function(key, val) {
             var key = Object.keys(val)[0],
                 value = val[key];
             console.log(key); // output: a, b, c ...
             console.log(value); // output: 1, 2, 3,...
            // alternative
            for(var key in val) {
                console.log(key);
                console.log(val[key]);
            }
        });
    },
    cache: false
})
于 2012-05-24T16:34:33.103 回答
2

你应该只设置dataTypejson 和 jQuery 会为你做的伎俩..

$.ajax({
    url: 'live-server-data.php',
    dataType: 'json',  //Added dataType json
    success: function(data) {
        //Now data is a javascript object (JSON)
    },
    cache: false
});
于 2012-05-24T16:36:37.197 回答