Arrays 发送一个json数组,并将其作为List类型的jaxb jersey参数接收
你好,对不起,如果已经问过了,但是找不到 这是我的问题,我不知道有多少字段将发送到我的Web服务,因为它们是动态的。因此,我想向jersey jaxb ressource发送一个json数组。由于我的json数组中的对象是字符串的一维数组,我应该能够执行以下操作:Arrays 发送一个json数组,并将其作为List类型的jaxb jersey参数接收,arrays,json,jaxb,jersey,Arrays,Json,Jaxb,Jersey,你好,对不起,如果已经问过了,但是找不到 这是我的问题,我不知道有多少字段将发送到我的Web服务,因为它们是动态的。因此,我想向jersey jaxb ressource发送一个json数组。由于我的json数组中的对象是字符串的一维数组,我应该能够执行以下操作: @POST @Path("/test") @Produces(MediaType.APPLICATION_JSON) public Response InputList(@QueryParam("list"
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response InputList(@QueryParam("list") final List<String> inputList)
@POST
@路径(“/test”)
@产生(MediaType.APPLICATION_JSON)
公共响应输入列表(@QueryParam(“列表”)最终列表输入列表)
这是我的json数组
{
“名单”:[
“你好”,
“世界”
]
}
这似乎不起作用 您现在拥有的东西不起作用,因为您的JSON不表示字符串列表。它表示具有单个属性(字符串列表)的对象。也就是说:
["hello", "world"]
是一个简单的JSON数据流,可以在Java中直接反序列化到列表中。鉴于:
{"list" : ["hello", "world"]}
是一个更复杂的数据流,需要反序列化为对象,例如如下所示:
public class ListHolder {
private List<String> list;
// constructors, getters/setters
}
公共类列表持有者{
私人名单;
//构造函数、getter/setter
}
然后,您可以在Jersey资源中使用此选项:
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response InputList(@QueryParam("list") final ListHolder listHolder) {
final List<String> list = listHolder.getList();
// rest of code
}
@POST
@路径(“/test”)
@产生(MediaType.APPLICATION_JSON)
公共响应输入列表(@QueryParam(“列表”)最终列表持有者){
最终列表=listHolder.getList();
//代码的其余部分
}
@Fongios-这是一个完全独立的问题,应该这样发布。