开发者社区> 问答> 正文

fastjson在使用toJSONString()转换含有双引号内容,结果再使用?报错

@wenshao 你好,想跟你请教个问题:

fastjson在处理特殊字符上,因为要在输出时保存字符串的原始模式,如\"的格式,要输出时,要输出为\ + "的形式,而不能直接输出为\",后者在输出时就直接输出为",而省略了\,这在js端是会报错的。 请问该如何处理啊?

我的情况是这样的:数据库中的content内容中含有双引号(你好"中国"),在使用fastjson转换toJSONString()后是:{"id":1, "content":"你好\"中国\""},但是我在jsp页面中将转换后的json字符串交给js解析: 

var res = JSON.parse('${res_content}'); --> var res = JSON.parse('{"id":1, "content":"你好\"中国\""}'); 

这样是报错的,应该是这样的:var res = JSON.parse('{"id":1, "content":"你好\\"中国\\""}'); 

请问该如何处理啊?

展开
收起
爱吃鱼的程序员 2020-06-14 15:19:13 2073 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    用jquery吧,里面有一个eval的方法,很方便的一样的,关键是转义后的格式在js中是不正确的。

    结果再转换一下:

    Stringstr=str.replaceAll("/[\r\n]+/g","").replaceAll("\"","\\"").replaceAll("\'","\\'");

    2020-06-14 15:19:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载