【问题标题】:Convert Json Rest to Java DTO将 Json Rest 转换为 Java DTO
【发布时间】:2015-08-25 18:27:23
【问题描述】:

有没有一种方法可以让我从 REST api 获取 DTO?我想从 JSON REST api 自动创建我的 DTO。有什么办法吗?

【问题讨论】:

  • 从 JSON 到 DTO 的转换对吗?可能的。在 SO 中提出任何问题之前,您可以先做一些谷歌搜索吗?
  • 我做到了,我发现了这个但一点用处都没有:jsonschema2pojo.orgtimboudreau.com/blog/json/read
  • 您使用哪个 JAX-RS 参考实现?
  • 我正在使用 Retrofit for android。

标签: java json rest


【解决方案1】:

您可以尝试使用 RESTEasy (Jboss Suite)JerseyGson 之类的框架库

那么你只需要定义一个与你的类相同的结构,例如,如果你的类是这样的:

@Entity
@Table(name = "\"entityName\"")
public class Entity implements Serializable {
    private static final long serialVersionUID = 3469107762875646075L;

    @Id
    private Integer id;

    @Column
    private String name;

    public Entity() {
    }

    //getters and setters

接口将接收该类型的对象。

@POST
@Path("/create")
@Produces(MediaType.APPLICATION_JSON)
Response createEntity(Entity entityObject);

而JSON是这样的,那么转换是自动的。

{
"id":"99",
"name":"stackoverflow"
}

注意:收到的信息必须与您的类中定义的类型相同才能执行此转换。

【讨论】:

  • 但是我想要来自 Json 对象的 Java DTO,你告诉我的恰恰相反。我有来自 API 的 Json,我需要执行每个 DTO 类来获得响应。
  • 仔细查看“create Entity”方法,该方法接收“Entity”类型的对象作为参数,并且当您在有效负载中发出 POST http 请求类型时,将发送到 JSON 对象,并将收到转换。
  • 我认为你不理解我。我需要将 JSON 响应转换为 DTO POJO 类,但我不知道该怎么做。我要解释一下自己......我向外部 API 发出请求,然后它给我一个响应,但我没有任何 DTO 类来保存它发送给我的信息。所以我想知道如何自动创建 DTO 以在我的应用程序中使用。非常感谢您,您正在努力帮助我 :),如果您有什么不明白的地方,请告诉我,我不是以英语为母语的人。
  • 现在我明白你的意思了,你可以尝试使用库Jackson来做到这一点,看看下一个article
  • 我看过 Jackson 库,但还是一样,它不会从 JSON 创建 POJOS,我想我必须自己做:/ 无论如何谢谢 :)
【解决方案2】:

几年后,这就是我想要的:

https://app.quicktype.io/

【讨论】:

    猜你喜欢
    • 2016-06-08
    • 1970-01-01
    • 2014-05-16
    • 1970-01-01
    • 1970-01-01
    • 2018-09-14
    • 2021-12-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多