【发布时间】:2019-06-28 13:58:56
【问题描述】:
我想知道是否可以更改 json 的属性名称
例如我有{"lat":27.4924,"lon":77.6737}
我想用 lng 改变 lon ,所以像这样{"lat":27.4924,"lng":77.6737}
【问题讨论】:
-
foo.lng = foo.lon; delete foo.lon;
标签: javascript
我想知道是否可以更改 json 的属性名称
例如我有{"lat":27.4924,"lon":77.6737}
我想用 lng 改变 lon ,所以像这样{"lat":27.4924,"lng":77.6737}
【问题讨论】:
foo.lng = foo.lon; delete foo.lon;
标签: javascript
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 字符串化并替换字符串。
JSON.parse(JSON.stringify(jsn).replace("lon", "lng"))
【讨论】:
你可以试试这个方法。您将旧属性的值分配给新属性并删除旧属性。使用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)
【讨论】: