通过单个字符串访问嵌套的JSON对象属性
此行:通过单个字符串访问嵌套的JSON对象属性,json,typescript,Json,Typescript,此行:X=This.appGlobal.GetNavigationLanguage().data 重新运行JSON,如下所示。 我想取NAV.REPORTS.BMAIL.TITLE 翻译代码(NAV.REPORTS.BMAIL.TITLE)是动态创建的 X.NAV.REPORTS.BMAIL.TITLE=>有效 X['NAV']['REPORTS']['BMAIL']['TITLE']=> 但请记住,我已经动态创建了翻译代码,我需要这样的代码: let transCode = 'NAV.REP
X=This.appGlobal.GetNavigationLanguage().data代码>
重新运行JSON,如下所示。
我想取NAV.REPORTS.BMAIL.TITLE
翻译代码(NAV.REPORTS.BMAIL.TITLE)是动态创建的
X.NAV.REPORTS.BMAIL.TITLE
=>有效
X['NAV']['REPORTS']['BMAIL']['TITLE']
=>
但请记住,我已经动态创建了翻译代码,我需要这样的代码:
let transCode = 'NAV.REPORTS.BMAIL.TITLE';
console.log(X[transCode]);
我如何才能做到这一点?短途险恶之路如下:
console.log(eval(`X.${transCode}`));
不那么糟糕的方法是使用递归函数调用,这意味着您只查看字符串路径中的项数(而不是循环整个集合)
短途险恶之路如下:
console.log(eval(`X.${transCode}`));
不那么糟糕的方法是使用递归函数调用,这意味着您只查看字符串路径中的项数(而不是循环整个集合)
测试数据={
导航:{
报告:{
b邮件:{
标题:“你好”
}
}
}
}
让transCode='NAV.REPORTS.BMAIL.TITLE';
properties=transCode.split('.');/>[“导航”、“报告”、“电子邮件”、“标题”]
结果=测试数据
properties.forEach(函数(属性){
结果=结果[属性]
})
console.log(result)//-->您好
测试数据={
导航:{
报告:{
b邮件:{
标题:“你好”
}
}
}
}
让transCode='NAV.REPORTS.BMAIL.TITLE';
properties=transCode.split('.');/>[“导航”、“报告”、“电子邮件”、“标题”]
结果=测试数据
properties.forEach(函数(属性){
结果=结果[属性]
})
console.log(result)//-->您好
您能用一个
分隔符拆分转码
,然后根据需要提取索引吗?如果您正在使用其他库,有一些很好的函数,比如。我可以,但在这种情况下,我必须使用double进行迭代,因为导航的每一项都可以有子项。所以我想避免这种情况。你能用
分隔符拆分转码
,然后根据需要提取索引吗?如果您正在使用其他库,有一些很好的函数,比如。我可以,但在这种情况下,我必须使用double进行迭代,因为导航的每一项都可以有子项。所以我想避免这种情况。这是一个很好的解决方案。这是一个很好的解决方案。