Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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_Replace - Fatal编程技术网

Javascript 如何更改json对象的所有属性名

Javascript 如何更改json对象的所有属性名,javascript,json,replace,Javascript,Json,Replace,我想更改json对象的所有属性名 const obj = { "country": "Value1", "area": "value2", "color_flag": "value3" } const newKeys = ["pays", "Superficie", "Couleur de drapeau"] // I would like to have something like this : obj = { "pays": "Value1", "superfi

我想更改json对象的所有属性名

const obj = {
  "country": "Value1",
  "area": "value2",
  "color_flag": "value3"
}

const newKeys = ["pays", "Superficie", "Couleur de drapeau"]

// I would like to have something like this : 

obj = {
  "pays": "Value1",
  "superficie": "Value2",
  "couleur_drapeau": "Value3"
}

提前感谢

您可以使用新关键点克隆对象,但您需要为新关键点提供如下地图:

const newKeys = {
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}
const obj = {
  "country": "Value1",
  "area": "value2",
  "color_flag": "value3"
}

const newKeys = { // Keys map
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}

const renamedObj = {}
for(let key in obj){
  const newKey = newKeys[key]
  renamedObj[newKey] = obj[key]
}
renamedObj = {
  "pays": "Value1",
  "superficie": "Value2",
  "couleur_drapeau": "Value3"
}
只需在左边放上原来的钥匙,在右边放上新的钥匙,在你的例子中是法语的翻译

然后,需要在原始对象的所有关键点上循环,并使用新关键点将每个值复制到新对象

const renamedObj = {}
for(let key in obj){
  const newKey = newKeys[key]
  renamedObj[newKey] = obj[key]
}
最终代码应如下所示:

const newKeys = {
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}
const obj = {
  "country": "Value1",
  "area": "value2",
  "color_flag": "value3"
}

const newKeys = { // Keys map
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}

const renamedObj = {}
for(let key in obj){
  const newKey = newKeys[key]
  renamedObj[newKey] = obj[key]
}
renamedObj = {
  "pays": "Value1",
  "superficie": "Value2",
  "couleur_drapeau": "Value3"
}
renamedObj
应如下所示:

const newKeys = {
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}
const obj = {
  "country": "Value1",
  "area": "value2",
  "color_flag": "value3"
}

const newKeys = { // Keys map
  "country": "pays",
  "area": "superficie",
  "color_flag": "couleur_drapeau"
}

const renamedObj = {}
for(let key in obj){
  const newKey = newKeys[key]
  renamedObj[newKey] = obj[key]
}
renamedObj = {
  "pays": "Value1",
  "superficie": "Value2",
  "couleur_drapeau": "Value3"
}

您将如何将哪个旧密钥映射到哪个新密钥?对象未排序。这将是另一个属性。分配后
obj.pays=obj.country;删除obj.country,如果这些是基本值。您已经尝试过什么?如果
新密钥
可以包含
obj
的密钥子集,请改用
重命名bj[newKey | | key]=obj[key]
。如果找不到新键的真实值,则使用旧键。否则,这是一个很好的答案。