Javascript 如何访问Json中的嵌套键值对
我已将来自后端的响应作为嵌套哈希映射返回,该映射是哈希映射中的哈希映射: hmap.put(l,hmap)//hmap中的hmap 返回新的ResponseEntity(Collections.singletonMap(“responsive”,hmap),HttpStatus.OK) 我的后端响应如下所示: email1和email2是哈希映射的键,子部分是嵌套哈希映射的键和值对Javascript 如何访问Json中的嵌套键值对,javascript,angular,typescript,for-loop,Javascript,Angular,Typescript,For Loop,我已将来自后端的响应作为嵌套哈希映射返回,该映射是哈希映射中的哈希映射: hmap.put(l,hmap)//hmap中的hmap 返回新的ResponseEntity(Collections.singletonMap(“responsive”,hmap),HttpStatus.OK) 我的后端响应如下所示: email1和email2是哈希映射的键,子部分是嵌套哈希映射的键和值对 responsive: {email2: {,…},…} email1: {sub3: "Hi Subpart
responsive: {email2: {,…},…}
email1: {sub3: "Hi Subpart 3", sub4: "Hi Subpart 4",…}
sub1: "Hi subpart 1"
sub2: "Hi subpart 2"
sub3: "Hi Subpart 3"
sub4: "Hi subpart 4"
email2: {,…}
sub7: "Hi Subpart 7"
sub8: "Hi Subpart 8"
I have accessed the email1 and email2 in the following fashion :
Object.keys(emails.responsive).forEach(e => {
let ref = this.dialog.open(emaildialog, {
data: emails.responsive[e],
width: "600px",
height: "600px",
}
);
});
现在我需要访问每种电子邮件类型的子部分,但我无法访问。如果结构数据为:
emails = {
email1: {
sub1: "Hi subpart 1",
sub2: "Hi subpart 2",
sub3: "Hi Subpart 3",
sub4: "Hi subpart 4",
},
email2: {
sub5: "Hi subpart 5",
sub6: "Hi subpart 6",
sub7: "Hi Subpart 7",
sub8: "Hi subpart 8",
}
}
您可以访问每种电子邮件类型的子部分:
Object.keys(emails).forEach(e => {
Object.keys(emails[e]).forEach(item => {
console.log(emails[e][item]);
})
})
对于以下JSON或进一步嵌套的JSON:
Obj : {
email1: {
sub1: "Hi subpart 1",
sub2: "Hi subpart 2",
sub3: "Hi Subpart 3",
sub4: "Hi subpart 4",
},
email2: {
sub5: "Hi subpart 5",
sub6: "Hi subpart 6",
sub7: "Hi Subpart 7",
sub8: "Hi subpart 8",
}
}
或
请尝试以下内容:
function getObjectKeyValue(obj, key) {
if (typeof(obj) === "string")
console.log(key + " " + obj);
else for (key in obj)
getObjectKeyValue(obj[key], key)
}
getObjectKeyValue(Obj)听起来它需要像普通对象一样被访问-
e.something
,但是从服务器返回的对象的结构确实不清楚。email1或email2中包含哪些内容?是否所有的电子邮件和Sub都在“响应”对象中找到,或者与它处于同一级别?如果你真的想澄清你从服务器上得到的更多信息,请在这里发布一个有效的json输出(查看网络选项卡并将响应粘贴到这里,你可能从控制台复制了它)我已经用更多信息编辑了这个问题,希望它有帮助!:-)
function getObjectKeyValue(obj, key) {
if (typeof(obj) === "string")
console.log(key + " " + obj);
else for (key in obj)
getObjectKeyValue(obj[key], key)
}