你好我很抱歉,如果已经被问到但无法找到。
这是我的问题,我不知道我将向我的网络服务发送多少字段,因为它们将是动态的。因此我想将json数组发送到我的jersey jaxb ressource。因为我的json数组中的对象将是一个单维的字符串数组,我应该可以执行以下操作:
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response InputList(@QueryParam("list") final List<String> inputList)
这是我的json数组 { &#34; list&#34;:[ &#34;你好&#34 ;, &#34;世界&#34; ] }
这似乎不起作用....
答案 0 :(得分:4)
您现在所拥有的功能不起作用,因为您的JSON不代表字符串列表。它表示一个对象,它有一个属性,它是一个字符串列表。即:
["hello", "world"]
是一个简单的JSON数据流,可以直接反序列化为Java中的List<String>
。鉴于:
{"list" : ["hello", "world"]}
是否需要将更复杂的数据流反序列化为对象,例如,如下所示:
public class ListHolder {
private List<String> list;
// constructors, getters/setters
}
然后您可以在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
}