net.sf.json.JSONObject会在不期望的地方添加反斜杠吗?

时间:2010-05-27 15:10:27

标签: java json backslash

我正在失去我的头发试图找出为什么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;附近加上“\”。

我该如何避免这种行为?

2 个答案:

答案 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。