搜索JSON对象,并从给定的key:value?返回上一级的密钥。

时间:2019-01-03 21:31:54

标签: javascript json

这似乎是一个基本问题,但是我是编码的新手,我只是找不到答案。 (我已经多次搜索和搜索StackOverflow。)

这是一个JSON对象:

const json = {
    "catalog:aardvark": {
        "severity": "minor"
    },
    "catalog:baboon": {
        "severity": "minor",
        "testDependency": "dashboard:echidna"
    },
    "catalog:capybara": {
        "severity": "minor",
        "testDependency": "dashboard:ferret"
    },
    "dashboard:dingo": {
        "severity": "minor"
    },
    "dashboard:echidna": {
        "severity": "minor"
    },
    "dashboard:ferret": {
        "severity": "minor"
    }
}

使用香草JavaScript或ES6或Node模块,我需要返回键"catalog:capybara",但我只能使用键"testDependency"和/或值"dashboard:ferret"。出于这些目的,其余所有都不为人知。

我尝试了许多尝试都无济于事,我将为您提供失败的详细信息。再次,这似乎应该很简单。非常感谢您的帮助!

PS:不要为许多键和值包含字符:

而感到困惑

2 个答案:

答案 0 :(得分:2)

您可以获取对象的键并找到嵌套的对象,然后返回键。

beta:=0.5

答案 1 :(得分:0)

您可以像这样将JSON映射到键/值数组:

const array = Object.keys(json).map((key) => {
    return  {key: key, value: json[key] };
});

然后您可以过滤键/值:

const filtered = array.filter((obj) => {
    return obj.key === "catalog:capybara" || obj.value.testDependency === "dashboard:ferret";
});