如何在Java中使用HttpClient将HttpResponse转换为Class?

bxjv4tth  于 2023-05-21  发布在  Java
关注(0)|答案(2)|浏览(135)

我正在使用JavaHttpClient(java.net.http),并且正在发送一个GET请求。
我得到的响应是类“UserDto”的JSON字符串。

HttpResponse<String> send = httpClient.send(accept, HttpResponse.BodyHandlers.ofString());

我不想以字符串的形式接收响应,而是直接将其转换为“UserDto”对象。

fv2wmkja

fv2wmkja1#

您可以使用gson package将字符串Map到UserDto类,如下所示:

String result;  // JSON String of the class "UserDto".
UserDto userDto = gson.fromJson(result, UserDto.class);
return userDto;

jackson也是一个选项,但我更喜欢gson,因为它真的很容易Map。

p8h8hvxi

p8h8hvxi2#

GSON可用于将UserDTO转换为USER类

确保已将Gson库添加到项目中。如果您使用的是Maven,则可以在pom.xml文件中包含以下依赖项:

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.9</version>
</dependency>

将Gson库导入Java类:

import com.google.gson.Gson;

创建Gson类的示例:

Gson gson = new Gson();

使用Gson示例将UserDTO转换为JSON字符串:

String json = gson.toJson(userDTO);

假设您的UserDTO对象名为userDTO,toJson()方法将把UserDTO对象转换为JSON字符串表示。
将JSON字符串转换回User实体对象:

User user = gson.fromJson(json, User.class);

fromJson()方法解析JSON字符串并将其转换为指定类的User对象,在本例中为User实体类。确保User实体类具有与UserDTO类匹配的字段名称和类型,以确保成功转换。通过使用Gson,您可以轻松地在JSON和Java对象之间进行转换,从而简化了将UserDTO转换为User实体类的过程。

相关问题