在react-native中显示具有不同键名但具有相同值结构的嵌套JSON对象

时间:2018-03-11 19:19:00

标签: javascript react-native

我的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中,如何访问每个密钥的valuelabel,而无需访问jsonData.name.value或{}等每个值{1}}吗

PS:This可能看似重复,但我想避免使用多个for循环进行存储和显示。它与我想要的不同。

1 个答案:

答案 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