使用 DTO 更改 httpresponse
Change httpresponse with DTO
我 运行 在容器中伪造 smtp,它有自己的 api,但它不可读,我不需要 80% 的响应,所以我如何使用 DTO 使响应更具可读性更简洁?
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:port/api/v2/messages"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
它响应巨大 json,我需要实施我的 DTO 以使其更具可读性并删除 json
中不必要的部分
我知道这是一个老问题,但是...
找到这个问题的答案:Ignore missing properties during Jackson JSON deserialization in Java
您只需添加 @JsonIgnoreProperties(ignoreUnknown = true)
即可忽略您在 DTO 中没有特别要求的每个字段。
然后您可以像这样将 json 转换为您的对象 jackson
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(response.body(), YourDTO.class);
其中 response
是您的 HttpResponse。
我 运行 在容器中伪造 smtp,它有自己的 api,但它不可读,我不需要 80% 的响应,所以我如何使用 DTO 使响应更具可读性更简洁?
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("http://localhost:port/api/v2/messages"))
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = HttpClient.newHttpClient().send(request, HttpResponse.BodyHandlers.ofString());
它响应巨大 json,我需要实施我的 DTO 以使其更具可读性并删除 json
中不必要的部分我知道这是一个老问题,但是...
找到这个问题的答案:Ignore missing properties during Jackson JSON deserialization in Java
您只需添加 @JsonIgnoreProperties(ignoreUnknown = true)
即可忽略您在 DTO 中没有特别要求的每个字段。
然后您可以像这样将 json 转换为您的对象 jackson
ObjectMapper objectMapper = new ObjectMapper();
return objectMapper.readValue(response.body(), YourDTO.class);
其中 response
是您的 HttpResponse。