4 个回答

@redred 其实没有必要用正则表达式,可以试试 eval 方法:

eval('var json = {jkl: 334}');

图片描述

var str="{jkl:334}";

var json = (new Function('return ' + str + ';'))();
console.log(json);
var obj = {jkl:334} //Object {jkl: 334}

JSON.stringify(obj) //"{"jkl":334}"

序列化:JSON.stringify()
  - 对象  ---> Json

反序列化:JSON.parse()
  - Json ---> 对象

是这样吗?

"{jkl:334}".replace(/([a-zA-z]+)(?=:)/g, '"$1"');
'{"jkl":334}'
"{jkl:334,qwe: 455}".replace(/([a-zA-z]+)(?=:)/g, '"$1"');
'{"jkl":334,"qwe": 455}'

(?=:) 意思是匹配这个:,但是不获取它,然后就可以获取到json中的key了,即jkl,然后将它替换成"jkl"

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题