【问题标题】:Receiving reponse from a rest client as a Java object作为 Java 对象接收来自 REST 客户端的响应
【发布时间】:2018-06-02 03:28:47
【问题描述】:

我读过Jersey tutorial,它的网络客户端似乎返回了字符串类型的响应,这意味着我需要自己解析响应。

Java(或第三方)中是否有任何库可以自动将响应从 JSON 转换为 Java?通过使用泛型可以理解。例如假设我希望响应主体是一个 Person 数组,那么我会执行以下操作:

FooResponse response = FooRestClient.makeRequest<Person[]>("http://www.foo.com/api/people","GET");

Person[] people = response.status == 200 ? response.body : [];

如果没有办法(或类似方法),解析响应然后将响应正文转换为 Java 对象的最简单方法是什么?

【问题讨论】:

    标签: java json spring jersey


    【解决方案1】:

    我建议你阅读Chapter 8 and 9 of Jersey docs。第 8 章是关于实体提供者的,并解释了如何从不同的 Java 类型进行转换。例如从 JSON 到 POJO 的转换。第 9 章讨论了 Jersey 提供的一些提供程序,包括用于 JSON/XML 与 POJO 转换的提供程序。

    一旦您注册了这些实体提供者之一,那么您应该能够进行所需的转换,而不仅仅是字符串。例如,如果您添加 jersey-media-json-jackson 提供程序,您可以将 JSON 转换为 POJO。

    Response res = client.target(url).request().get();
    MyPojo pojo = res.readEntity(MyPojo.class);
    

    【讨论】:

      猜你喜欢
      • 2012-12-16
      • 1970-01-01
      • 2015-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多