在 JavaScript 中展平 JSON 对象
javascriptweb developmentfront end technologyjson更新于 2024/6/16 1:16:17
假设,我们有以下 JSON 对象,该对象可能包含最多任何级别的嵌套 −
const obj = {
"one": 1,
"two": {
"three": 3
},
"four": {
"five": 5,
"six": {
&"seven": 7
},
&"eight": 8
},
&"nine": 9
};
我们需要编写一个 JavaScript 函数,该函数接受一个这样的嵌套 JSON 对象并返回一个不包含嵌套的新对象,并使用点符号将相应的值映射到键。
因此,对于上述对象,输出应如下所示 −
const output = {
'one': 1,
'two.three': 3,
'four.five': 5,
'four.six.seven': 7,
'four.eight': 8,
'nine': 9
};
示例
其代码为 −
const obj = {
"one": 1,
"two": {
"three": 3
},
"four": {
"five": 5,
"six": {
"seven": 7
},
"eight": 8
},
"nine": 9
};
const flattenJSON = (obj = {}, res = {}, extraKey = '') => {
for(key in obj){
if(typeof obj[key] !== 'object'){
res[extraKey + key] = obj[key];
}else{
flattenJSON(obj[key], res, `${extraKey}${key}.`);
};
};
return res;
};
console.log(flattenJSON(obj));
输出
控制台中的输出将是 −
{
one: 1,
'two.three': 3,
'four.five': 5,
'four.six.seven': 7,
'four.eight': 8,
nine: 9
}
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

