【问题标题】:Is it possible to change property name of Json?是否可以更改 Json 的属性名称?
【发布时间】:2019-06-28 13:58:56
【问题描述】:

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

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

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

【问题讨论】:

标签: javascript


【解决方案1】:

使用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)

【讨论】:

  • 这可以在 json 数组上做吗?
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    你可以试试这个方法。您将旧属性的值分配给新属性并删除旧属性。使用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)

    【讨论】:

      猜你喜欢
      • 2016-07-31
      • 2012-07-03
      • 2013-01-30
      • 2020-01-27
      • 2018-10-12
      • 2016-08-28
      • 2012-01-18
      • 2019-05-09
      • 2019-12-10
      相关资源
      最近更新 更多