我已经阅读了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对象的最简单方法是什么?
答案 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);