Jackson:将对象序列化为json时,自定义转义双引号

kal*_*ali 1 java serialization json jackson

默认情况下,杰克逊使用反斜杠转义双引号:\“。因此json对象看起来像

{"title": "Testing \"double quotes\""}
Run Code Online (Sandbox Code Playgroud)

我想用两个反斜杠转义双引号:\\“。像这样

{"title": "Testing \\"double quotes\\""}
Run Code Online (Sandbox Code Playgroud)

如何为双引号自定义杰克逊序列化策略?

Aar*_*ita 6

这将产生无效的JSON,因此Jackson不会帮助您做到这一点。假设成员名称中没有反向固线,则可以在输出实际的字符串值之后执行以下操作:

String invalid = mapper.writeValueAsString(object).replace("\\", "\\\\");
Run Code Online (Sandbox Code Playgroud)

  • 我不认为你能做到。正如我所说,您要生成的 JSON 无效。字符串中的引号不会被转义,因为您已经转义了 '\',因此有效 json 中的下一个字符应该是 '}'、']' 或 ',' 但您将有 'd'。为什么你想要双 '\' 呢? (2认同)