javascript - 从 JSON 对象中提取深层数据

标签 javascript arrays json reactjs object

{
  "hoodie": {
    "body": {
      "default": {
        "colors": {
          "style": {
            "solid": {
              "colors": {
                "body": "body"
              }
            }
          }
        }
      },
      "additional": {
        "logo": {
          "image": ""
        },
        "chest-pocket": {
          "colors": {
            "chest-pocket": "chest-pocket"
          }
        },
        "tag": {
          "image": ""
        }
      }
    },
    "sleeves": {
      "default": {
        "colors": {
          "style": {
            "solid": {
              "colors": {
                "sleeve": "sleeve"
              }
            }
          }
        }
      },
      "additional": {
        "cuffs": {
          "colors": {
            "cuffs": "cuffs"
          }
        }
      }
    }
  }
}

我需要的格式是提取附加 key 。在这种情况下,连帽衫 key 包含主体和袖子作为其 key ,另外还包含与附加 key 相对应的不同 key 。我已经给出了需要解析的Object以及解析后得到的数据。

{
  "body": ["logo", "chest-pocket", "tag"],
  "sleeves": ["cuffs"]
}

任何人都可以分享链接,它可能会帮助我玩对象。 提前致谢。

最佳答案

您可以使用array.reduceObject.keys 的帮助下获得所需的输出

请检查下面的代码片段。

const input = {
  "hoodie": {
    "body": {
      "default": {
        "colors": {
          "style": {
            "solid": {
              "colors": {
                "body": "body"
              }
            }
          }
        }
      },
      "additional": {
        "logo": {
          "image": ""
        },
        "chest-pocket": {
          "colors": {
            "chest-pocket": "chest-pocket"
          }
        },
        "tag": {
          "image": ""
        }
      }
    },
    "sleeves": {
      "default": {
        "colors": {
          "style": {
            "solid": {
              "colors": {
                "sleeve": "sleeve"
              }
            }
          }
        }
      },
      "additional": {
        "cuffs": {
          "colors": {
            "cuffs": "cuffs"
          }
        }
      }
    }
  }
}

let output = Object.keys(input.hoodie).reduce((acc, curr) => {
  acc[curr] = Object.keys(input.hoodie[curr].additional)
return acc 
}, {})

console.log(output)

关于javascript - 从 JSON 对象中提取深层数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61799445/

相关文章:

javascript - 下面的javascript代码结构是什么意思?

javascript - window.showModalDialog 和回发按钮

php - 分解数组以生成两个变量,以便我可以从数据库表中获取信息以发送电子邮件

javascript - 使用不正确的符号更正 JSON 字符串?

javascript - 如何提供通过 POST 调用获取的 json?

javascript - 谷歌云数据存储: Storing arrays and objects

javascript - 使用特定字符作为断点将数组分成更小的数组

javascript - 在 Javascript 中对三维数组进行排序

javascript - 如何仅在第一次调用时在函数内定义变量?

javascript - AngularJS 指令中 JSON 模型对象的 labelFunction