Javascript 获取节点js中json变量的嵌套属性
如何在NodeJS中获取json变量的所有属性,并将它们全部放在txt文件中? 如果JSON的结构如下所示,我只能创建属性的txt文件Javascript 获取节点js中json变量的嵌套属性,javascript,node.js,json,Javascript,Node.js,Json,如何在NodeJS中获取json变量的所有属性,并将它们全部放在txt文件中? 如果JSON的结构如下所示,我只能创建属性的txt文件 // JSON Variable const jsonValue1 = { "prop1": "val1", "prop2": "val2", "prop3": "val3", } const fs = require('fs') const keys = Object.keys(jsonValue1) const fileName =
// JSON Variable
const jsonValue1 = {
"prop1": "val1",
"prop2": "val2",
"prop3": "val3",
}
const fs = require('fs')
const keys = Object.keys(jsonValue1)
const fileName = './keys_id.txt'
fs.writeFileSync(fileName, keys.join('\n))
//在keys_id.txt文件中输出
prop1
prop2
prop3
但是,如果我的JSON的结构是这样的呢:
const jsonValue2 = {
"prop1": "val1",
"prop2": {
"prop2_1": "val2_1"
"prop2_2": "val2_2"
}
"prop3": "val3"
}
prop1
prop2.prop2_1
prop2.prop2_2
prop3
如何获取嵌套属性?实际上,我在文件中的预期输出如下:
const jsonValue2 = {
"prop1": "val1",
"prop2": {
"prop2_1": "val2_1"
"prop2_2": "val2_2"
}
"prop3": "val3"
}
prop1
prop2.prop2_1
prop2.prop2_2
prop3
是否可能?对输入对象的
条目使用递归reduce
:
const inputObj={
“prop1”:“val1”,
“建议2”:{
“prop2_1”:“val2_1”,
“prop2_2”:“val2_2”
},
“prop3”:“val3”
};
const getKeys=(对象、道具=[],累计=[])=>(
Object.entries(obj).reduce((a,[key,val])=>{
const thispropar=[…道具,键];
if(typeof val=='object'){
a、 按下(…获取键(val、thisPropArr))
}否则{
a、 推送(此路径连接('.');
}
返回a;
},累计)
);
log(getKeys(inputObj))代码>