我正在失去我的头发试图找出为什么net.sf.json.JSONObject在我的java代码中不应该添加额外的反斜杠:
JSONObject obj = new JSONObject ();
obj.element ("column_name", "<a href=\"#\" title=\"test\">Test !</a>");
将输出:
<a href=\"#\" title=\"test\">Test !<\/a>
在&lt; / a&gt;附近加上“\”。
我该如何避免这种行为?
答案 0 :(得分:2)
它可能使用相同的方法来转义JSON中的字符串,因为脚本块(<script ...> ... </script>
)中使用的JavaScript字符串根据HTML语法规则可能不包含字符序列</
。
这对你有什么影响吗?转义“随机”字符不会改变JSON或JavaScript中字符串文字的含义。字符串文字"/"
和"\/"
在技术上完全相同:
if ("/" === "\/") alert("The same!");
编辑:BTW,JSON语法明确地将正斜杠(solidus)列为可以转义的字符。
答案 1 :(得分:2)
我也遇到过这个问题。原来问题是我的代码使用了org.json.JSONObject和com.amazonaws.util.json.JSONObject。两者之间的转换是创建字符串和转义字符。考虑到你正在使用net.sf.json.JSONObject,这也可能是你的问题。检查您的导入是否有其他版本的JSONObject。