http如何使用Java 11 HttpClient和Jackson将JSON响应映射到Java类?
我是Java11HttpClient的新手,想尝试一下。我有一个返回JSON的简单GET请求,我想将JSON响应映射到一个名为Questionnaire
的Java类
我知道我可以将响应转换成字符串或类似的输入流
HttpRequest request = HttpRequest.newBuilder(new URI(String.format("%s%s", this.baseURI, "/state")))
.header(ACCEPT, APPLICATION_JSON)
.PUT(noBody()).build();
HttpResponse<String> response = this.client.send(request, HttpResponse.BodyHandlers.ofString());
如何编写将JSON字符串转换为以下问卷类的内容
HttpResponse<Questionnaire> response = this.client.send(request, HttpResponse.BodyHandlers./* what can I do here? */);
我使用Jackson将JSON转换为Java类实例。Jackson是否支持新的Java标准HttpClient
更新1 我不够精确,抱歉。我正在寻找一个拦截的例子。我知道http://openjdk.java.net/groups/net/httpclient/recipes.html#jsonGet
# 1 楼答案
如果你同意包含依赖项,请查看Methanol(免责声明:我是该库的作者)。该库为object mapping提供了特殊的
BodyHandler
实现。您可以通过安装jackson adapter来添加JSON支持