我想知道是否可以更改json的属性名称
例如,我有{"lat":27.4924,"lon":77.6737}
我想用lng更改lon,所以像这样{"lat":27.4924,"lng":77.6737}
答案 0 :(得分:2)
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)