[英]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.