本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
提示:以下是本篇文章正文内容,下面案例可供参考
假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。例如:
//原数组
array:[{old_name:1},{old_name:2}]
//改了属性名之后的数组
array:[{new_name:1},{old_name:2}]
方法一:
// array为数组,old_name为修改前属性名,new_name为修改后属性名
JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name'))
//例:
//把checkboxItems的id项转换为value
this.setData({
checkboxItems:JSON.parse(JSON.stringify(this.data.checkboxItems).replace(/id/g, 'value'))
})
说明:
JSON.stringify()把json对象 转成 json字符串- 使用正则的
replace()方法替换属性名 JSON.parse()再把json字符串 转成 json对象
如需修改多个属性: 可以多次调用replace方法
JSON.parse(JSON.stringify(array).replace(/old_name1/g, 'new_name1').replace(/old_name2/g, 'new_name2').replace(/old_name3/g, 'new_name3'))
方法二:
可以使用数组的
map方法
//array为数组,old_name为修改前属性名,new_name为修改后属性名
array.map(function(g){
return {new_name1:g.old_name1,new_name2:g.old_name2,new_name3:g.old_name3}
})