【问题标题】:Efficient way to map nested JSON Objects on DTO Objects在 DTO 对象上映射嵌套 JSON 对象的有效方法
【发布时间】:2021-07-16 10:03:52
【问题描述】:

我正在开发客户端休息,我在问自己是否有一种优雅的方法可以在 DTO 对象上映射多个 JSON 对象。

我有这样的事情:

{
    "status": "OK",
    "error": [],
    "payload": {
        "list" :
            [{"Id":"012345", name":"IRON MAN", "age":"45"}...]
    }
}

于是我创建了几个 DTO 类:

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponseDTO {
    private String status;
    private List<String> error;
    private ResponsePayloadDTO payload;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
public class ResponsePayloadDTO {
    List<MyObject> list;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
public class MyObject {
    private String Id;
    private String name;
    ...
}

有没有更有效的方法来管理它? 谢谢

【问题讨论】:

  • 如果你有很多rest API和DTO要写,你最好使用代码生成器。 github.com/OpenAPITools/openapi-generator 之类的工具可能是一个不错的工具,但问题是您必须拥有所需格式的其余 API 文档。

标签: json spring dto


【解决方案1】:

在 pom 中添加 Gson 库。

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

Gson gson = new Gson();
User user= gson.fromJson(jsonInString, Respons Dto.class);

【讨论】:

    猜你喜欢
    • 2021-07-06
    • 2013-08-01
    • 1970-01-01
    • 2021-03-29
    • 2020-09-27
    • 2021-06-20
    • 1970-01-01
    • 2017-07-20
    • 2018-03-17
    相关资源
    最近更新 更多