我有一个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中做到这一点?
谢谢!
答案 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的名称映射,并使用它映射到具有新属性名称的对象,例如
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;