Java 如何获取列表<;字符串>;作为jersey2客户的回应
我想知道如何从Java 如何获取列表<;字符串>;作为jersey2客户的回应,java,json,jersey-2.0,jersey-client,Java,Json,Jersey 2.0,Jersey Client,我想知道如何从jersey-2.0客户端提取列表作为响应 我已经试过了 List<String> list = client .target(url) .request(MediaType.APPLICATION_JSON) .get(new GenericType<List<String>>(){}); List=客户端 .t
jersey-2.0
客户端提取列表作为响应
我已经试过了
List<String> list = client
.target(url)
.request(MediaType.APPLICATION_JSON)
.get(new GenericType<List<String>>(){});
List=客户端
.target(url)
.request(MediaType.APPLICATION_JSON)
.get(新的GenericType(){});
但是,上面的代码不起作用。它不会返回预期的列表
,而是返回一个null
值。您可以将服务响应作为响应
类对象,然后使用readEntity(…)
方法解析此对象
下面是一个快速代码片段:
List<String> list = client
.target(url)
.request(MediaType.APPLICATION_JSON)
.get(Response.class)
.readEntity(new GenericType<List<String>>() {});
/* Do something with the list object */
List=客户端
.target(url)
.request(MediaType.APPLICATION_JSON)
.get(Response.class)
.readEntity(新的GenericType(){});
/*对列表对象执行一些操作*/
1)在中获取响应,然后使用readEntity()方法解析响应对象
List List=client.target(url)。
request(MediaType.APPLICATION_JSON).get(Response.class).readEntity(新的GenericType()){
});
String listString=servicesponse.readEntity(String.class);
Gson Gson=新的Gson();
Type Type=new-TypeToken(){}.getType();
List=gson.fromJson(listString,type);
获取响应字符串,然后使用gson库将其转换为列表
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.27</version>
</dependency>
最后通过ClientConfig创建客户机
List<String> list = ClientBuilder.newClient( config )
.target( uri )
.request()
.get( Response.class )
.readEntity( List.class );
List List=ClientBuilder.newClient(配置)
.target(uri)
.request()
.get(Response.class)
.readEntity(List.class);
我得到的大小为5,但调试时显示所有元素都为空。但是元素都存在。您可以共享您尝试使用的服务的JSON响应吗?这是JSON响应[“孟买”、“德里”、“加尔各答”]这不是列表
而是JSONArray
。有一点不同。谢谢,我将jsonString转换为list.String listString=serviceResponse.readEntity(String.class)并转换回jsonArray,然后再转换为list此答案出现在低质量的审阅队列中,可能是因为您没有提供任何代码解释。如果这个代码回答了这个问题,考虑添加一些解释你答案中的代码的文本。这样,你就更有可能获得更多的选票,并帮助提问者学习新的东西。这会起作用,但会显示一个未经检查的警告,从一个列表转换到另一个列表。使用GenericType的答案更准确。
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.27</version>
</dependency>
ClientConfig config = new ClientConfig();
config.register( JacksonFeature.class );
List<String> list = ClientBuilder.newClient( config )
.target( uri )
.request()
.get( Response.class )
.readEntity( List.class );