使用动态密钥检索JSON响应数据

问题描述 投票:0回答:3

我正在我的应用程序中调用API,并且需要深入了解JSON响应。在其中有一个随机字符串,它会发生变化,因此我无法对值进行硬编码。无论随机字符串是什么,有没有一种方法可以访问dataset1?

{
    "data": {
        "Random String that Changes": { 
            "dataset1": {
                "date": {...}
            },
            "dataset2":{
                "date": {...}
            }
        }
    },
    "something else": {
        ...
    },
    "something else": {
        ...
    }
}

以前我很难像这样对下钻进行编码:

this.props.data.randomData['Random String that Changes'].dataset1.date

也尝试过:

this.props.data.randomData[0].dataset1.date
javascript reactjs
3个回答
1
投票

您可以使用获取对象的所有键

const keys = Object.keys(this.props.data);

现在keys是所有键的数组,但是如果json始终只有1个键,则可以使用]来获取数据

this.props.data.randomData[keys[0]].dataset1.date


1
投票

尝试像这样访问对象:

const obj = this.props.data.randomData;

this.props.data.randomData[Object.keys(obj)[0]].dataset1.date

参考:How to access the first property of an object in Javascript?


0
投票

请检查以下代码以获取解决方案。

var response = {
    "data": {
        "Random String that Changes": { 
            "dataset1": {
                "date": {...}
            },
            "dataset2":{
                "date": {...}
            }
        }
    },
    "something else": {
        ...
    },
    "something else": {
        ...
    }
};
var dataInRandomKey = response.data(Object.keys(response.data)[0]);

现在,您在dataInRandomKey变量中拥有了整个JSON对象(在当前示例中,是response ['data'] ['Random String that Changes”。

© www.soinside.com 2019 - 2024. All rights reserved.