Java Spring:Web服务REST在JSON上产生双反斜杠

时间:2014-06-05 16:40:15

标签: java json spring rest spring-mvc

所以我有这个字符串,例如

"B\z@b@s@rB{FpMgBrD~DK|"

但是春天在json上制作了这个:

"B\\z@b@s@rB{FpMgBrD~DK|"

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

每个使用该服务的客户端都可以.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();
}

我已尝试过其他方法来生成像Gson这样的库的json,但结果是一样的。

1 个答案:

答案 0 :(得分:2)

这是JSON中的预期行为。 \需要转义。请参阅规范here

  

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