我正在我的应用程序中调用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
您可以使用获取对象的所有键
const keys = Object.keys(this.props.data);
现在keys
是所有键的数组,但是如果json始终只有1个键,则可以使用]来获取数据
this.props.data.randomData[keys[0]].dataset1.date
尝试像这样访问对象:
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?
请检查以下代码以获取解决方案。
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”。