Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用我自己的数据逐个替换JSON对象中的所有键_Javascript_Json_Loops_Reactjs_React Native - Fatal编程技术网

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

Javascript 用我自己的数据逐个替换JSON对象中的所有键,javascript,json,loops,reactjs,react-native,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).

我有一个包含以下内容的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>
    );
};
我会如何反应呢

谢谢

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

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

假设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方法将转换数组中的每个项目并生成另一个数组。

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

var数据=[{
“类型”:“pdf”,
“大小”:“1mb”,
“日期”:“392017”
}];
var nameMap={type:'File type',
大小:'文件大小',
日期:'日期为'
};
变量重命名=[Object.keys(数据[0])。减少(
(附件,钥匙)=>{
acc[nameMap[key]]=数据[0][key];
返回acc;
}, {})];

console.log(重命名)创建oldName:newName的名称映射,并使用它映射到具有新属性名称的对象,例如

var数据=[{
“类型”:“pdf”,
“大小”:“1mb”,
“日期”:“392017”
}];
var nameMap={type:'File type',
大小:'文件大小',
日期:'日期为'
};
变量重命名=[Object.keys(数据[0])。减少(
(附件,钥匙)=>{
acc[nameMap[key]]=数据[0][key];
返回acc;
}, {})];

console.log(重命名)您可能会提供一个旧名称到新名称的映射,然后简单地将旧属性分配给具有新名称的新属性(在新对象中或在旧对象中),然后删除旧属性。您尝试过什么?您可能会提供一个从旧名称到新名称的映射,然后简单地将旧属性分配给具有新名称的新属性(在新对象中或在旧对象中),然后删除旧属性。您尝试过什么?这应该是一个手动过程,javascript如何知道键应该是什么?假设两个数组之间存在1对1的映射,即旧键和新键,那么就没有必要了…映射是在
对象中
还是在
数组中
都可以正常工作。这应该是一个手动过程,javascript如何知道键应该是什么?假设在两个数组(即新旧键)之间存在1对1的映射,那么就没有必要了……映射是在
对象中
还是在
数组中
都可以很好地工作。