簡體   English   中英

如何從對象獲取值?

[英]How to fetch values from object?

我有一個從JSON反序列化的對象:

[Log] {"Rob7":{"lastSeenAt":null,"state":"online","userId":"Rob7"},"Techyudh_rob63":{"lastSeenAt":"2018-07-18T17:45:56Z","state":"offline","userId":"Techyudh_rob63"},"Teacher4":{"lastSeenAt":null,"state":"online","userId":"Teacher4"}} (chat, line 965)

我想從中獲取每個用戶的狀態。 我正在嘗試這個。

var j = (JSON.stringify(val.presenceStore.store));
var json = $.parseJSON(j);
$(json).each(function(i, val) {
  $.each(val, function(k, v) { 
    console.log(k + " : " + v);
  });
});

但是,它顯示Rob7: [object Object] 我是JSON的新手。 誰能幫忙嗎?

您可以使用普通的JavaScript來實現,而無需jQuery。 解析JSON之后,只需使用Object.entries( ... ).forEach循環返回的值,即可設置好。

 var data = { "Rob7": { "lastSeenAt": null, "state": "online", "userId": "Rob7" }, "Techyudh_rob63": { "lastSeenAt": "2018-07-18T17:45:56Z", "state": "offline", "userId": "Techyudh_rob63" }, "Teacher4": { "lastSeenAt": null, "state": "online", "userId": "Teacher4" } }; Object.entries(data).forEach(([k, v]) => { console.log(k, v.state); }); 

這里的問題是您試圖將object附加到該行的string中:

console.log(k + " : " + v);

v內的對象不能作為string附加到控制台,因此這就是為什么:R ob7: [object Object]

解:

如果僅將鍵和值記錄語句分開,它將可以完美地工作:

console.log(k + " : ");
console.log(v);

另一個選擇是使用JSON.stringify()v對象獲取string

console.log(k + " : " + JSON.stringify(v));

暫無
暫無

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

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