从休眠客户端接收响应作为Java对象

时间:2018-06-02 03:28:47

标签: java json spring jersey

我已经阅读了Jersey tutorial,似乎它的Web客户端返回String类型的响应,这意味着我需要自己解析响应。

Java(或第三方)中是否有可以自动将响应从JSON转换为Java的库?使用泛型可以有意义。例如让我们说我希望响应体是一个Person数组,然后我会做类似的事情:

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

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

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

1 个答案:

答案 0 :(得分: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);