您好,如果已经询问但找不到,我很抱歉。
这是我的问题,我不知道我将发送多少个字段到我的网络服务,因为它们是动态的。因此,我想将 json 数组发送到我的 Jersey jaxb 资源。由于我的 json 数组中的对象将是一维字符串数组,我应该能够执行以下操作:
@POST
@Path("/test")
@Produces(MediaType.APPLICATION_JSON)
public Response InputList(@QueryParam("list") final List<String> inputList)
这是我的 json 数组 { “列表”: [ “你好”, “世界” ] }
这似乎不起作用......
最佳答案
您现在的内容不起作用,因为您的 JSON 不表示字符串列表。它表示一个具有单个属性(字符串列表)的对象。也就是说:
["hello", "world"]
是一个简单的JSON数据流,可以直接反序列化为List<String>
在 java 。鉴于:
{"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
}
关于arrays - 发送 json 数组并将其作为 List 类型的 jaxb jersey 参数接收,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17395893/