使用 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。