代码之家  ›  专栏  ›  技术社区  ›  Cyril N.

net.sf.json.jsonObject在不需要反斜杠的地方添加反斜杠?

  •  1
  • Cyril N.  · 技术社区  · 14 年前

    我正在脱发,想知道为什么NET.SF.JSON.JSONObjt在Java代码中不应该添加额外的反斜杠:

    JSONObject obj = new JSONObject ();
    obj.element ("column_name", "<a href=\"#\" title=\"test\">Test !</a>");
    

    意志产出:

    <a href=\"#\" title=\"test\">Test !<\/a>
    

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

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

    2 回复  |  直到 11 年前
        1
  •  2
  •   RoToRa    14 年前

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

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

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

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

        2
  •  2
  •   fivedogit    11 年前

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