[英]how to get data from dynamic key pair value in Angular
這是我的問題,我無法從下面的動態json獲取動態密鑰對值是我的json
var d = {
"pexels-photo.jpeg": {
"information": "laptop",
"desc": {
"mimetype": "image/jpeg",
"id": "shsj44",
"file_id": "pexels-photo.jpeg"
},
"_id": "shsj44"
}
}
在這里我嘗試下面
Object.keys(d).forEach(function(key){
var value = d[key];
console.log(key + ':' + value) ;
});
我想獲取id值“ _id”和“ file_id”值
您可以使用解構分配
var d = {"dynamic": {"information": "laptop","desc": { "mimetype": "image/jpeg","id": "shsj44","file_id": "pexels-photo.jpeg" },"_id": "shsj44"}} let dynamicKey = Object.keys(d)[0] let {[dynamicKey]:{desc:{ file_id },_id}} = d console.log(file_id, '\\n', _id)
這是因為value
之前的+
,它將嘗試連接該值,您將看到[object object]
var d = { "pexels-photo.jpeg": { "information": "laptop", "desc": { "mimetype": "image/jpeg", "id": "shsj44", "file_id": "pexels-photo.jpeg" }, "_id": "shsj44" } } Object.keys(d).forEach(function(key) { let value = d[key]; console.log(key + ' : ', value); console.log(key + ' : ', value.desc.id); });
您需要檢查該值是否為對象,如果是,則需要再次對其進行循環。
以下代碼將打印d
每個鍵值對
export class AppComponent implements OnInit {
d = {
'pexels-photo.jpeg': {
'information': 'laptop',
'desc': {
'mimetype': 'image/jpeg',
'id': 'shsj44',
'file_id': 'pexels-photo.jpeg'
},
'_id': 'shsj44'
}
};
ngOnInit(): void {
this.calc(this.d);
}
calc(val) {
Object.keys(val).forEach(key => {
const value = val[key];
if (typeof (value) === 'object') {
this.calc(value);
} else {
console.log(key + ':' + value);
}
});
}
}
嘗試這個 :
var d = { "pexels-photo.jpeg": { "information": "laptop", "desc": { "mimetype": "image/jpeg", "id": "shsj44", "file_id": "pexels-photo.jpeg" }, "_id": "shsj44" } }; Object.keys(d).filter(key => { Object.keys(d[key]).filter(item => { if (item === 'desc') { Object.keys(d[key][item]).filter(elem => { if ((elem === 'id') || (elem === 'file_id')) { console.log(elem + ' : ' + d[key][item][elem]); } }); } }) });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.