Javascript:将嵌套 JSON 转换为简单 JSON
💎 很高兴看到你的回复
这将是我们几乎经常使用的实用功能。
根据数据的种类和结构,API 响应可能会返回非常复杂的 JSON。有时,仅从整个 JSON 中捕获一个字段是不够的。我们可能需要在网页上显示多个字段。每次都遍历如此复杂的 JSON 并非明智之举。如果我们能根据具体情况将其转换为简单的 JSON,效果会更好。
希望介绍够了。接下来我们进入正题。
这里,我采用了多层嵌套的 JSON。我会将其转换为简单的 JSON。
以下是我的示例 JSON:
const obj = {
first: {
first: '1',
second: {
second: true,
third: {
third: 'third',
fourth: {
fourth: 4
}
}
}
}
}
我想要的输出是:
{first: '1', second: true, third: 'third', fourth: 4}
再次查看输入和输出以获得想法。
让我们编写一些代码来实现上述目标:
const simpleObj = {};
function destructure(obj) {
for (let key in obj) {
const value = obj[key];
const type = typeof value;
if (['string', 'boolean'].includes(type) || (type === 'number' && !isNaN(value))) {
simpleObj[key] = value;
} else if (type === 'object') {
Object.assign(simpleObj, destructure(value));
}
}
return simpleObj;
}
console.log(destructure(obj));
for (let key in obj) {
-> 对给定的对象进行迭代。
const value = obj[key];
const type = typeof value;
捕捉实际value
及其type
。
if (['string', 'boolean'].includes(type) || (type === 'number' && !isNaN(value))) {
simpleObj[key] = obj[key];
验证 key 的值是否不是。如果不是 ,object
则复制到obj 。sampleObj
object
else if (typeof obj[key] === 'object') {
Object.assign(simpleObj, destructure(obj[key]));
}
对于对象,再次调用相同的函数(称为recursion
)以转到对象的嵌套层级。此外,将所有内容赋值给sampleObj
。因此,最终这个单一对象将包含所有键值对。
最后,返回该对象并将其打印到console
。
如果我们能以更好的方式实现这一点,我将非常感激您的建议。谢谢。
💎 很高兴看到你的回复
- 点赞- 您到达此处的意思是:我认为,我值得点赞。
- 评论——我们可以一起学习。
- 分享——让其他人也发现此资源有用。
- 订阅/关注——及时了解我的每日文章。
- 鼓励我-你可以给我买杯咖啡
我们进一步讨论一下。
- 只需直接联系@urstrulyvishwak
-
或者提及
@urstrulyvishwak