是否可以更改Json的属性名称?

时间:2019-02-04 19:05:30

标签: javascript

我想知道是否可以更改json的属性名称

例如,我有{"lat":27.4924,"lon":77.6737}

我想用lng更改lon,所以像这样{"lat":27.4924,"lng":77.6737}

3 个答案:

答案 0 :(得分:2)

使用delete operator

let obj = {"lat":27.4924,"lon":77.6737}
obj.lng = obj.lon;
delete obj.lon;

console.log(obj)

另一种方法是使用destructing assignment

let obj = {"lat":27.4924,"lon":77.6737, 'xyz':2}
let {lon:lng,...rest} = obj
let obj1 = {...rest,lng}

console.log(obj1)

也可以使用reduce

let obj = {"lat":27.4924,"lon":77.6737}

let op = Object.keys(obj).reduce((op,cur)=>{
  if(cur == 'lon'){
    op['lng'] = obj[cur]
  } else {
    op[cur] = obj[cur]
  }
  return op
},{})

console.log(op)

答案 1 :(得分:0)

一种有趣的方法是将json字符串化并替换字符串。

JSON.parse(JSON.stringify(jsn).replace("lon", "lng"))

答案 2 :(得分:0)

您可以尝试此方法。您将旧属性的值分配给新属性,然后删除旧属性。使用delete。我已经为此创建了一个函数

let obj = {"lat":27.4924,"log":77.6737}
function changePropName(obj,oldName,newName){
  obj[newName] = obj[oldName];
  delete obj[oldName];
}
changePropName(obj,'log','newName');
console.log(obj)

相关问题