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

を jsonに設定するだけでdataType、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 に答える