Java POST JSON 数据处理异常 (code 160)): was expecting double-quote to start field name

完整的异常信息如下:

12:00:50.310 [http-nio-8080-exec-5] ERROR o.a.c.c.C.[.[.[.[dispatcherServlet] - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
com.fasterxml.jackson.core.JsonParseException: Unexpected character (' ' (code 160)): was expecting double-quote to start field name
 at [Source: (String)"{
    "action": "dom",
    "dom": "P1D",
    "pageSize": 100,
    "page": 0
}"; line: 2, column: 2]

上面的错误提示为输入的 JSON 数据不正确,没有办法处理。

问题和解决

这个问题困惑了我们很久。

原因后来发现在输入的 JSON 格式,不知道什么原因使用了双引号。

我们使用的是 POSTMAN 发送的数据。

后来,我们修改了数据使用的格式为 JSON 格式。

然后再将数据发送到后台就没有这个问题了。

这个问题的原因我们认为是 HTTP 请求的格式定义导致了后台的 Spring 处理逻辑没有办法处理输入的字符串,在进行 JSON 格式数据转换的时候出错了。