1.JOSN字符串中单引号双引号处理
情况:页面中使用后端传来的json(字符串中有单引号或者双引号),我用的freemarker模板
//json内容,注意key"name" 的值中有个单引号
String json = "{\"name\":\"levi's\",\"age\":\"18\"}";
model.addAttribute("json", json);
//freemarker中的js代码
var user = '${json}';
//freemarker模板引擎处理过后显示到浏览器的js代码
var user = '{"name":"levi's","age":"18"}';
这时因为json中有单引号,所以解析页面取值就会失败。所以要转译json中的特殊字符
//java代码
String json = "{\"name\":\"levi's\",\"age\":\"18\"}";
json = json.replaceAll("'", "'");
//freemarker模板引擎处理过后显示到浏览器的js代码
var user = '{"name":"levi's","age":"18"}'
这样name字段在页面显示的时候就会解析为"levi’s"
常用html转义字符 :

符一个实体名称与对应字符互转的Java工具类
HTML中常用字符实体相互转换
commons-lang3-3.1.jar中StringEscapeUtils
StringEscapeUtils.unescapeHtml4(">script>alert(2);</script>");
//输出:<script>alert(2);</script>
StringEscapeUtils.escapeHtml4("<script>alert(\"2\");</script>");
//输出:<script>alert("2");</script>
本文探讨了在Freemarker模板引擎中处理包含特殊字符(如单引号和双引号)的JSON字符串的方法,通过转义和替换确保了JSON在前端正确解析。介绍了如何使用Java的replaceAll方法和StringEscapeUtils工具类进行字符实体转换。

585

被折叠的 条评论
为什么被折叠?



