JSON.parse无双引号如何实现转换

本文介绍了如何使用`JSON.parse()`时避免双引号问题,并通过`replace`方法格式化字符串,兼容日期格式,同时展示了如何通过正则表达式处理键值对。

用JSON.parse()做转换,必须用双引号包起来。但是我用chrome的devtools时,它可以自动转换。于是上网查了一下,原来可以通过replace方法格式化一下。(修改后可以兼容日期格式)

	let a= "{id: 1, name:test, gender: 男,}";
	let fixed_a = a
				.replace(/(['"])?(\d{4})-(\d{1,2})-(\d{1,2})?\s*,/g, '"$2-$3-$4",')
				// 通过@colon@替换“:”,防止日期格式报错
				.replace(/(['"])?(\d{4})-(\d{1,2})-(\d{1,2})\s+(\d{1,2}):(\d{1,2}):(\d{1,2})(['"])?\s*,/g, '"$2-$3-$4 $5@colon@$6@colon@$7",')
				.replace(/(['"])?([a-z0-9A-Z\u4e00-\u9fa5_]+)(['"])?\s*:/g, '"$2": ')
				.replace(/:\s*(['"])?([a-z0-9A-Z\u4e00-\u9fa5_]+)(['"])?\s*,/g, ': "$2",')
				.replace(/@colon@/g, ":")
				.replace(/:\s*,/g, `:"",`)
				.replace(/:\s*,\s*}/g, `:""}`)
				.replace(/:\s*,\s"/g, `:"","`)
				.replace(/:\s*,\s'/g, `:"",'`)
				.replace(/,\s*}/g, "}");
	let obj = JSON.parse(fixed_a);
	console.log(obj);

参考资料:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值