簡體   English   中英

JavaScript JSON解析問題($ .getJSON)

[英]JavaScript JSON Parse Issue ($.getJSON)

我似乎無法獲得以下代碼輸出任何內容到屏幕上。 JavaScript不是我的強項!

這是調用本地文件的JavaScript代碼,該文件輸出房間列表

$.getJSON('roomupdate.php?level=1&div=1&callback=json',function(res){
console.log(res.rooms.name[0]);
});

在上面我只是試圖在控制台中看到第一個房間的名稱。 這是JSON輸出(我可以確認腳本可以看到並加載)

json(
{
        "rooms":
        [
            { "name" : "Bedroom" },
            { "name" : "Living Room" },
            { "name" : "Lounge" },
            { "name" : "Kitchen" }
        ]
})

有誰能建議我做錯了什么? 甚至在控制台中查看?

最后,你可以遍歷數組嗎?

您的JSON數據包含一個對象rooms ,該對象實際上包含一個數組[] ,因此要訪問數組中的數據,您需要將索引放在rooms

console.log(res.rooms[0].name);

使用callback=? 而不是callback=json以便jQuery知道你正在使用JSONp並且可以為回調函數選擇它自己的名字。

$.getJSON('roomupdate.php?level=1&div=1&callback=?',function(res){
    //alert('Your name is '+res.rooms);

    console.log(res.rooms.name[0]);
});

有關詳細信息,請參閱http://api.jquery.com/jQuery.getJSON/#jsonp

編輯:

再看一下,您需要更改訪問數據的方式。 res.rooms.name[0]應該是res.rooms[0].name因為rooms是一個列表,每個房間都有一個name屬性。

這將遍歷房間數組並記錄每個房間的名稱:

$.each( res.rooms, function( i, room ) {
    console.log( room.name );
});

如果這不起作用,那么在回調開始時添加此語句(現在您可以調用console.log() ):

debugger;

在打開開發人員工具的情況下加載/運行您的頁面,它將在您擁有該語句的調試器中停止。 現在,您可以詳細查看所有變量,嘗試表達式以查看它們的作用,單步執行代碼等。

暫無
暫無

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

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