我試圖編寫一個通知系統。一個AJAX調用運行一個PHP腳本,它選擇'new = 1'的每個'消息'。所以我通過JSON_encode將PHP數組返回給JS。如何讀出JSON返回的對象?
這將返回後續的對象:
在我原來的頁面,你可以看到所有的會話「。我想用新消息的數量(= Object中記錄的數量)'更新'div(具有新消息)的文本。
現在問題來了:我不知道如何讀出那個對象。有人可以幫我嗎?
非常感謝!
我試圖編寫一個通知系統。一個AJAX調用運行一個PHP腳本,它選擇'new = 1'的每個'消息'。所以我通過JSON_encode將PHP數組返回給JS。如何讀出JSON返回的對象?
這將返回後續的對象:
在我原來的頁面,你可以看到所有的會話「。我想用新消息的數量(= Object中記錄的數量)'更新'div(具有新消息)的文本。
現在問題來了:我不知道如何讀出那個對象。有人可以幫我嗎?
非常感謝!
如果你想要消息在特定會話數量,這將是這樣的:
theObjectThatGotReturned[sessionName].length
// sessionName is the name of the session; in this case, "cgk" or "ur"
如果您希望郵件的所有會話的數字,它會是這樣的此:
var newMessages = 0;
for(var i in theObjectThatGotReturned) {
if (/* here, you should test if i == a valid session name */) {
newMessages += theObjectThatGotReturned[i].length;
}
}
// newMessages is the number of new messages.
嘗試:JSON =新功能( 「返回({」 + ajax.responseText + 「})」);
我很確定OP已經將它從字符串轉換爲對象。如果我沒有弄錯,他們問題中的圖像實際上是Safari/Chrome調試器的屏幕截圖,顯示對象的屬性。 – DavidJCobb 2011-05-21 23:37:04
我想要一個特定會話的消息數量,但也爲每個會話。所以在這個例子中它將是:returnedObj [cgk] .length和returnedObj [ur] .length。問題是我不知道會話的「名稱」(在這種情況下爲UR&CGK),所以我必須循環它。 – Dnns 2011-05-21 23:19:59
我不完全確定你的意思......如果你不知道名字,你怎麼知道你什麼時候找到合適的會議? – DavidJCobb 2011-05-21 23:40:32
...現在,如果你的意思是你不會提前知道這個名字,但是你會在運行時將它存儲在一個變量*中,那麼...你會使用我的第一個代碼片段。當您執行'object [sessionName]'時,瀏覽器將取得'sessionName'的值並將其用作屬性的名稱。因此,例如,如果'sessionName ==「ur」',那麼'object [sessionName] == object [「ur」] == object.ur'。 – DavidJCobb 2011-05-21 23:42:19