java - 在 jackson 转义正斜杠

标签 java json escaping jackson

我使用 Jackson 生成 JSON 对象并将它们直接写入 HTML 的标记中,如下所示:

   <script>
     var data = $SomeJacksonWrapper.toJson($data);
   </script>

如果某些字符串包含 '</script>',此代码将中断在里面。转义正斜杠 (/) 可以解决问题,并且 JSON 规范允许这样做。

如何在 Jackson 中启用它?

最佳答案

根据 StaxMan 的回答,我得到了以下代码:

   public class CustomCharacterEscapes extends CharacterEscapes {

     private static final Logger log = Logger.getLogger(CustomCharacterEscapes.class);

     private final int[] _asciiEscapes;

     public CustomCharacterEscapes() {
       _asciiEscapes = standardAsciiEscapesForJSON();
       _asciiEscapes['/'] = CharacterEscapes.ESCAPE_STANDARD;
     }

     @Override
     public int[] getEscapeCodesForAscii() {
       return _asciiEscapes;
     }

     @Override
     public SerializableString getEscapeSequence(int i) {
       return null;
    }
  }


    public class CustomObjectMapper extends ObjectMapper {

     public CustomObjectMapper() {
       this.getJsonFactory().setCharacterEscapes(new CustomCharacterEscapes());
     }

    }

关于java - 在 jackson 转义正斜杠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6817520/

相关文章:

java - 卡夫卡中的空指针异常

c# - 服务器端和客户端方法

java - 如何在 JEditorPane 中嵌入 HtmlUnit Web 客户端?

javascript - JavaScript 中是否可以自动声明数千个变量?

asp.net - 如何获取 JSON 字符串化数据

ios - 为 AFNetworking 2.0 URL 字符串正确转义字符

javascript - 使用 onClick 和 innerHTML 时如何正确转义一大块 HTML?

java - 如何删除java属性中的转义额外斜杠

java - 处理自定义 Java 注释的模式

java - Google Drive API - 如何使用域范围服务帐户并从域获取所有文档列表