簡體   English   中英

我無法從AJAX請求中提取JSON數組,有些返回未定義或[對象對象]

[英]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);
  });
}

console.log(數據)的結果如何

Blockquote {“ filters”:{“ id_filter”:[“ 2”,“ 1”,“ 3”],“ judul_filter”:[“ Jenis Arus Dana”,“ Instansi NAD”,“ Kategori Transaksi NAD”]},“ select_list“:[[[” s“,” p“],[” Sumber“,” Pengeluaran“]],[[” 1“,” 2“,” 3“,” 4“,” 5“,” 6 “],[” Bank Sentral“,” Perbankan“,” Pemerintah“,” Domestik Lain“,” Luar Negeri“,” Seluruh Instansi“]] ,, [[” 0200“,” 0300“,” 0400“,” 0500 “,” 0600“,” 0700“,” 0800“,” 0900“,” 1000“,” 1010“,” 1020“,” 1021“,” 1022“,” 1023“,” 1024“,” 1025“, “ 1030”,“ 1100”,“ 1200”,“ 1210”,“ 1220”,“ 1230”,“ 1300”,“ 1400”,“ 1410”,“ 1420”,“ 1500”,“ 1800”,“ 2000 “,” 9000“,” 0100“],[”非金融投資人“,” Pinjaman Neto“,” Selisih Statistik“,”投資金融人Neto“,” Jumlah Penggunaan Finansial“,” Jumlah Sumber Finansial“,” Cadangan Valas Pemerintah ”,“ Klaim Dalam Valas Lainnya”,“ Uang Dan Simpanan”,“ Uang Dan Simpanan Dalam Valas”,“ Uang Dan Simpanan Dalam Rupiah”,“ Uang Kertas Dan Logam”,“ Giro”,“ Tabungan”,“ Deposito Berjangka” ,“ Simpanan Rupiah Lainnya”,“ Tabungan Giro Pos Dan Koperasi”,“ Surat Berharga Jangka Pendek”,“ Kredit”,“ Kredit Bank Dalam Rupiah”,“ Kredit Institusi Lain D.Rupiah”,“ Kredit Dalam Valas”,“ Modal Saham Dan Penyertaan”,“ Surat Berharga Jangka Panjang”,“ Surat Berharga Pemerintah”,“ Surat Berharga Lainnya”,“ Cadangan Asuransi Dan Pensiun”,“ Kredit Dagang” ,“ Rekinging Antar Bank”,“ Rupa-Rupa”,“ Tabungan Bruto”]]]}

當我檢查此行“ alert(x.count);”時,它會返回

未定義

如果我想提取所有judul_filter或id_filter或其他,我如何實現每個特定元素?

注意:我訪問過一些鏈接,例如Cant讀取PHP生成的JSON到我的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)
    });
}

如果要獲取像select_list這樣的數組的長度,請在json中沒有名為count屬性,請使用data.select_list.length

您沒有計數,需要使用x.length

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM