我不能从AJAX请求中提取JSON数组,有些返回未定义或[object object]


I can't extract JSON array from AJAX request, some return undefined or [object object]

我有一个使用AJAX发送-接收数据的机制。数据被发送到一个php文件,然后当完成的结果将返回JSON-from(使用encode_json方法)。然后将为每个目标提取接收到的json数据。

问题出现,当我试图提取从php文件传输的json消息。这是Javascript部分

function set_filter() {
var a = document.getElementById('Tema');
var b = a.options[a.options.selectedIndex].value;
$.get("filter.php", {tema: b, method: 'set_filter'}, function(data, status) {
    alert(status);
    console.log(data);
    x = JSON.parse(data);
    alert(x.count);
  });
}

This How result of console.log(data)

引用{"过滤器":{"id_filter":("1"2","3"),"judul_filter":[" Jenis阿鲁达娜"、"Instansi NAD","Kategori Transaksi NAD"]},"select_list":[[["s","p"],["Sumber"、"Pengeluaran"]],[["1"、"2"、"3"、"4"、"5"、"6"],["银行Sentral"、"Perbankan"、"Pemerintah"、"Domestik躺","Luar Negeri"、"Seluruh[]],[["0200","0300","0400","0500","0600","0700","0800","0900","1000","1010","1020","1021","1022","1023","1024","1025","1030","1100","1200","1210","1220","1500","1300","1400","1410","1420","1500","1800","2000","9000","0100"],["Investasi finance Neto","Jumlah Penggunaan金融","Jumlah Sumber金融","Cadangan Valas Pemerintah","Klaim Dalam Valas Lainnya","黄丹辛帕南","黄丹辛帕南Dalam Valas","黄丹辛帕南Dalam Valas","黄丹辛帕南Dalam Valas","黄丹辛帕南Dalam Valas","黄丹辛帕南Dalam Valas","黄丹"孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉-孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行","孟加拉银行"

当我选中"alert(x.count);"这一行时,它返回

定义

如果我想提取所有judul_filter或id_filter或其他,我如何实现每个/特定元素?

注:我访问过一些链接,如不能读取JSON产生的PHP到我的javascript在JavaScript中解析JSON ?将JSON字符串转换为Javascript数组但根据我的建议,它返回未定义或[pbject对象]。必须使用JSON.Stringify(data)将数据解析为字符串吗?还是如何?

-谢谢,

看起来您正在返回json数据,因此使用$.ajax()的自动解析。

您可以使用$.getJSON()或将数据类型作为'json'传递给$.get()

function set_filter() {
    var a = document.getElementById('Tema');
    var b = a.options[a.options.selectedIndex].value;
    $.getJSON("filter.php", {
        tema: b,
        method: 'set_filter'
    }, function (data, status) {
        var judul_filter = data.filters.judul_filter;
        var id_filter = data.filters.id_filter;
        console.log(judul_filter, id_filter);
        var select_list = data.select_list;
        console.log(data.select_list.length)
    });
}

json中也没有名为count的属性,如果您想获得select_list等数组的长度,请使用data.select_list.length

你没有count,你需要使用x.length