Java Spring:Web 服务 REST 在 JSON 中生成双反斜杠

Mig*_*ega 3 java rest spring json spring-mvc

所以我有这个字符串例如

"B\z@b@s@rB{FpMgBrD~DK|"
Run Code Online (Sandbox Code Playgroud)

但是 Spring 正在以 json 生成这个:

"B\\z@b@s@rB{FpMgBrD~DK|"
Run Code Online (Sandbox Code Playgroud)

对于任何带有反斜杠的字符串都是一样的\。在生成 json 之前替换字符是没有用的,因为在生成 json 之前字符串是正确的。

每个使用该服务的客户端都可以 .replace("\\","\\\\") json,但我想知道是否有更干净的方法来解决服务器端的问题。

下面是 WS 的代码:

@RequestMapping(value = "/rest/sinc/{ms}", method = RequestMethod.GET, produces="application/json;charset=UTF-8")
@ResponseBody
public String sincronizar(@PathVariable("ms") Long ms) {
    return sincService.getSinc(ms).toString();
}
Run Code Online (Sandbox Code Playgroud)

我尝试过其他方法来使用 Gson 等库生成 json,但结果是相同的。

Sot*_*lis 5

这是 JSON 中的预期行为。\需要逃脱。请参阅此处的规范。

所有 Unicode 字符都可以放在引号内, 但必须转义的字符除外:引号、反斜线和控制字符(U+0000 到 U+001F)。