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>