javascript JSON.parse 下画线转驼峰

原数据

let str='{"a_b":2,"a_c":{"a_b_c":1,"b_c":2},"ad":[{"a_b_c_d":4,"a_b_c":3,"a_c":{"a_b_c":3,"b_c":2}},{"a_e":{"a_B_c_D_e":5,"abcde":5,"ac_bd":4}}]}';

直接转换为JSON

console.log(JSON.stringify(JSON.parse(str),null,2));
/**
{
   "a_b": 2,
   "a_c": {
      "a_b_c": 1,
      "b_c": 2
   },
   "ad": [
      {
         "a_b_c_d": 4,
         "a_b_c": 3,
         "a_c": {
            "a_b_c": 3,
            "b_c": 2
         }
      },
      {
         "a_e": {
            "a_B_c_D_e": 5,
            "abcde": 5,
            "ac_bd": 4
         }
      }
   ]
}
**/

使用reviver进行下画线转驼峰后

//转换方法
function toHump(k,v) {
	if(v instanceof Array){
		return v;
	}
	if(v instanceof Object) {
		let res = {};
		for(let key in v){
			let parts = key.split('_');
			let newKey = "";
			for(let k of parts){
				if(newKey === ""){
					newKey = k;
				}else{
					newKey += k[0].toUpperCase()+k.substr(1);
				}
			}
			res[newKey] = v[key];
		}
		return res;
	}
	return v;
}
console.log(JSON.stringify(JSON.parse(str,toHump),null,2));
/**
{
  "aB": 2,
  "aC": {
    "aBC": 1,
    "bC": 2
  },
  "ad": [
    {
      "aBCD": 4,
      "aBC": 3,
      "aC": {
        "aBC": 3,
        "bC": 2
      }
    },
    {
      "aE": {
        "aBCDE": 5,
        "abcde": 5,
        "acBd": 4
      }
    }
  ]
}
**/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值