Spring RestTemplate 无法转换 json 响应

Spring RestTemplate can not convert json response

我有 url - http://hzhzhz

return json

{
    "someField": 3,
    "datesField": ["2017-08-19",
    "2017-08-20",
    "2017-08-26",
    "2018-12-30"]
}

我创建模型

@Data
@NoArgsConstructor
private class Response{
    private int someField;
    private DatesField datesField;
}

@Data
@NoArgsConstructor
private class DatesField{
    private List<String> strings;
}

我创造

ResponseforObject = restTemplate.getForObject("http://hzhzhz", Response.class);

我得到错误:

Could not extract response: no suitable HttpMessageConverter found for response type [class mypackeg.Response] and content type [text/html;charset=utf-8]

您的 "http://hzhzhz" 调用 returns HTML 无法转换为 mypackeg.Response class.

可能是 URL 错误或者它产生了错误的内容类型(HTML 而不是预期的 JSON 或 XML)。要修复尝试 return String.class 并检查字符串中的确切内容。

另一个可能的原因是权限被拒绝,returns 访问被拒绝 HTML 页面。

http://hzhzhz 端点更改为 return

content type = 'application/json'

如果 http://hzhzhz 是由 spring 制作的,请在请求映射中使用它

produces = "application/json"

如果您使用 spring 控制器,您应该将产品更改为 "application/json"