如果我有這樣的json:
{
"dcf93893d83e4f28953f140b9cba1963":{
"foo":{
"client":"127.0.0.1",
"id":"31971",
"start time":1654131724.160335
},
"bar":{
"client":"127.0.0.1",
"id":"23456",
"start time":1654131900.997766
}
}
}
我想出了如何像這樣回圈遍歷它:
for (var key in json) {
if (json.hasOwnProperty(key)) {
console.log(json[key])
}
}
如何遍歷每個子元素(在這種情況下為 foo 和 bar),然后獲取一個鍵,例如 id?
client、id 和 start time 是唯一已知的鍵名
預期輸出:
31971
23456
編輯: json 來自 fetch:
setInterval(function () {
fetch(<url>)
.then(function (response) {
return response.json();
})
.then(function (json) {
for (var key in json) {
if (json.hasOwnProperty(key)) {
console.log(json[key])
}
}
})
}, 2000);
uj5u.com熱心網友回復:
執行另一個回圈并通過鍵名獲取內部值:
const json = {
"dcf93893d83e4f28953f140b9cba1963":{
"foo":{
"client":"127.0.0.1",
"id":"31971",
"start time":1654131724.160335
},
"bar":{
"client":"127.0.0.1",
"id":"23456",
"start time":1654131900.997766
}
}
}
for (var key in json) {
if (json.hasOwnProperty(key)) {
//console.log(json[key])
for(var key2 in json[key]) {
console.log(json[key][key2]["id"])
}
}
}
uj5u.com熱心網友回復:
您必須在每個回圈中回圈。并將每個 id 保存到一個陣列中。
var ids = []
for (var key in json) {
if (json.hasOwnProperty(key)) {
for(var obj in json[key]) {
if (obj.id) ids.push(obj.id)
}
}
}
uj5u.com熱心網友回復:
而不是迭代,您可以使用 獲取物件的值,并使用andObject.values()相應地映射這些值:flatMap()map()
const data = {
"dcf93893d83e4f28953f140b9cba1963": {
"foo": {
"client": "127.0.0.1",
"id": "31971",
"start time": 1654131724.160335
},
"bar": {
"client": "127.0.0.1",
"id": "23456",
"start time": 1654131900.997766
}
}
};
const result = Object.values(data)
.flatMap(v => Object.values(v)).map(({id}) => id);
console.log(result);
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/484838.html
標籤:javascript json
下一篇:獲取物件值陣列和物件值嵌套陣列
