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