用我自己的数据逐个替换JSON对象中的所有键

时间:2017-03-10 03:45:00

标签: javascript json loops reactjs react-native

我有一个JSON对象,其中包含以下内容:

[{
    "type": "pdf",
    "size": "1mb",
    "date": "392017",
    .....500 more key value pairs like this
}]

这就是我在React Native中在屏幕上显示上面的JSON对象的方法。

export const MyComponent = ({myJson}) => {
    const data = Object.entries(myJson).map(([key, value], i) => {
        if (value !== '' && value !== null) {
            return (
                <View style={styles.body} key={i}>
                    <Text style={styles.labels}>{key}</Text>
                    <Text style={styles.values}>{value}</Text>
                </View>
            );
        }
    });

    return (
        <View>
            {data}
        </View>
    );
};

我想更改密钥以便它变为:

[{
    "File Type": "pdf",
    "File Size": "1mb",
    "Date Is": "392017",
    .....500 more key value pairs like this
}]

我如何在React中做到这一点?

谢谢!

3 个答案:

答案 0 :(得分:2)

假设var数组是你的JSON数组,而newArray就是你想要的数组,这是一个可以帮助你的代码。

var array = [{
    "type": "pdf",
    "size": "1mb",
    "date": "392017",
    .....500 more key value pairs like this
}]

var newArray = [];

newArray = array.map(function(item){
    return {
        "File Type": item.type,
        "File Size": item.size,
        "Date is": item.date
    }
})

map方法将转换数组中的每个项目,并生成另一个数组。

答案 1 :(得分:1)

Object.keys(yourObject).forEach((key)=>{ //this will return array of keys

   yourObject[newKey] = yourObject[key]; //saving reference in your new key.
   delete yourObject[key]; //deleting old key;

});

您需要使用新密钥映射旧密钥,然后循环使用并轻松更改此密钥。

答案 2 :(得分:1)

创建oldName:newName的名称映射,并使用它映射到具有新属性名称的对象,例如

&#13;
&#13;
var data = [{
    "type": "pdf",
    "size": "1mb",
    "date": "392017"
}];

var nameMap = {type:'File Type',
               size:'File Size',
               date:'Date Is'
};

var renamed = [Object.keys(data[0]).reduce(
  (acc, key) => {
    acc[nameMap[key]] = data[0][key];
    return acc;
  }, {})];
  
console.log(renamed);
&#13;
&#13;
&#13;