【发布时间】:2018-05-03 19:56:51
【问题描述】:
我有一个服务器端控制器,它正在添加一个属性,该属性是一个使用 Jackson 转换为 JSON 的 Java 对象:
ObjectMapper mapper = new ObjectMapper();
model.addAttribute("commentObj", mapper.writeValueAsString(commentObject);
我的commentObject 有一个字段“cmets”,其中包含JSON 需要转义的引号(“)。当我从commentObject 的JSP 中进行简单打印时,一切看起来都不错:
[{"commentId":123,"comments": "this \"test\" is here"}]
如您所见,引号已正确转义 (\")。
我的问题来自这个页面上的 javascript,它也需要访问这个对象。所以当我运行以下命令时:
<script>
var test = ${commentObj};
</script>
如果我看一下“test”变量,cmets 字段现在如下所示:
"this "test" is here"
vs.
"this \"test\" is here"
这会导致问题,因为 JSON.parse() 将在“测试”上抛出错误,因为它不再是正确格式的 JSON。
所以我的问题是,如何在保留转义字符的同时设法将我的 commentObj 转换为 javascript 对象,以便我可以正确地 JSON.parse 它?
【问题讨论】:
标签: javascript json jsp escaping