写点什么

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

用户头像
DisonTangor
关注
发布于: 2021 年 06 月 06 日

用 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);
复制代码


参考资料:


发布于: 2021 年 06 月 06 日阅读数: 11
用户头像

DisonTangor

关注

怀揣一个武侠梦的男孩 2020.07.29 加入

还未添加个人简介

评论

发布
暂无评论
JSON.parse无双引号如何实现转换