我的react-native app中有一个嵌套的JSON对象,格式如下,其中键名不同,但所有值的结构都相同即。
{"value": "...", "label": "..."}
{
"name": {
"value": "Doctor Stranger Things",
"label": "Name"
},
"qualification": {
"value": "MBBS",
"label": "Qualification"
},
"specialization": {
"value": "Magic",
"label": "Specialization"
}
}
我尝试使用.map()
,但由于我是新手本机和ES6,我对它的用法并不了解。我尝试过的以下代码没有按预期工作。
render(){
return(
<View>
{jsonData.map((item) => (
<View>
<Text>{item.value}</Text>
<Text>{item.label}</Text>
</View>
))}
</View>
);
}
假设我已将JSON对象存储在变量jsonData中,如何访问每个密钥的value
和label
,而无需访问jsonData.name.value
或{}等每个值{1}}吗
PS:This可能看似重复,但我想避免使用多个for循环进行存储和显示。它与我想要的不同。
答案 0 :(得分:1)
检查Object.keys()
Object.keys()方法返回给定对象自己的可枚举属性的数组,其顺序与for ... in循环提供的顺序相同(不同之处在于for-in循环枚举了原型链也是如此。
尝试
render(){
return(
<View>
{Object.keys(jsonData).map((item) => (
<View>
<Text>{item.value}</Text>
<Text>{item.label}</Text>
</View>
))}
</View>
);
}
有关Object.keys()
的更多信息https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/keys