javascript - JS解析带有双引号内容的JSON字符串时的报错问题
天蓬老师
天蓬老师 2017-04-11 11:23:39
[JavaScript讨论组]

nodejs写了个工具来将指定目录下的html文件名和文件内容作为键值对存储为一个对象,然后将这个对象使用JSON.stringify()转化为字符串后存储为另外一个文件。现在的问题是, 当文件内容里面含有双引号的时候, 会出现报错的情况, 但是在原JSON文件里, 双引号是转义了的来着。 是我哪一部分没有整对吗?

如下图所示: 如果直接在浏览器里定义一个对象并添加双引号包含的内容的时候, 转化为json字符串后再打印字符串能够看到转义符号, 但是直接复制过来的json字符串里明明有转义符号, 但是之后再打印的时候就没有了, 这是为啥。。。

var json = '{"test":"

测试测试测试测试测试

","test2":"

\r\n

\r\n

\r\n

\r\n left\r\n

\r\n

\r\n right\r\n

\r\n","test3":"

\r\n

\r\n\r\n

\r\n

\r\n\r\n

\r\n

\r\n"}'; JSON.parse(json); // error


PS: 直接require()那个文件的话也能够正常读取

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(1)
怪我咯

很简单一次转义是不够的, 自己理解一下

var json = '{"test":"<p>测试测试测试测试测试</p>","test2":"<p class=\\"container\\">\\r\\n  <p class=\\"ext\\"></p>\\r\\n</p>\\r\\n<p class=\\"left\\">\\r\\n  left\\r\\n</p>\\r\\n<p class=\\"right\\">\\r\\n  right\\r\\n</p>\\r\\n","test3":"<p class=\\"container\\">\\r\\n  <p class=\\"left\\">\\r\\n\\r\\n  </p>\\r\\n  <p class=\\"right\\">\\r\\n\\r\\n  </p>\\r\\n</p>\\r\\n"}';
JSON.parse(json);

update下:

字面量'\"'会是"还是\"

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号