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



我有一个带有以下内容的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
}]

我将如何在反应中做到这一点?

谢谢!

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;
});

您需要用新密钥映射旧键,然后在循环中绘制并轻松更改此密钥。

假设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
    }
})

地图方法将转换数组中的每个项目,并为另一个数组的结果。

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

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);

相关内容

  • 没有找到相关文章

最新更新