AJAX 来电返回 'undefined'

AJAX call returning 'undefined'

AJAX调用如下:

$.get('file.php')
.done(function(data) {
    console.log(data);
});

控制台returns:

[{"0":"PS001","code":"PS001"}]

但是如果将日志修改为 console.log(data.code) 它 returns undefined。此外,使用 each 遍历 JSON:

.done(function, data) {
    $.each(data, function(key, value) {
        console.log(value.code);
    });
)};

导致以下错误:

[Error] TypeError: [{"0":"PS001","code":"PS001"}] is not a valid argument for
'in' (evaluating 'b-1 in a')

JSON 看起来格式正确,所以不确定问题出在哪里?

试试这个,因为你的代码 return json array.

console.log(data[0].code);  //If you getting JSON format

console.log(JSON.parse(data)[0].code);  //If you getting JSON as String

Demo

JSON_ENCODE returns 字符串.

详细了解 JSON_ENCODE

您应该将 JsonArray String 转换为 JsonArray

$.get('file.php')
.done(function(data) {
    var arrayObj = JSON.parse(data);
     $.each(arrayObj , function(key, value) {
            console.log(value.code);
        });
});

试试这个:

$.get('file.php')
.done(function(data) {
    var json = JSON.parse(data)[0];
    console.log(json .code);
});

这是一个json字符串。你需要先解析它。试试 -

data = $.parseJSON(data);
$.each(data, function(key, value) {
    console.log(value.code);
});