1

我正在失去头发,试图弄清楚为什么 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>

在 </a> 附近有一个额外的“\”。

我怎样才能避免这种行为?

4

2 回答 2

2

<script ...> ... </script>它可能使用与在脚本块中使用的 JavaScript 字符串(根据 HTML 语法规则可能不包括字符序列)使用相同的方法来转义 JSON 中的字符串</

这对你有什么影响吗?转义“随机”字符不会改变 JSON 或 JavaScript 中字符串文字的含义。字符串文字"/""\/"在技术上是完全一样的:

if ("/" === "\/") alert("The same!");

编辑:顺便说一句,JSON语法明确地将正斜杠(solidus)列为可以转义的字符。

于 2010-05-27T15:18:12.300 回答
2

我也遇到了这个问题。原来问题是我的代码同时使用了 org.json.JSONObject 和 com.amazonaws.util.json.JSONObject。两者之间的转换是创建字符串和转义字符。考虑到您使用的是 net.sf.json.JSONObject,这也可能是您的问题。检查您的导入以获取其他版本的 JSONObject。

于 2013-06-01T16:13:30.127 回答