arrays - 发送 json 数组并将其作为 List 类型的 jaxb jersey 参数接收

标签 arrays json jaxb jersey

您好,如果已经询问但找不到,我很抱歉。

这是我的问题,我不知道我将发送多少个字段到我的网络服务,因为它们是动态的。因此,我想将 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/

相关文章:

javascript - 使用 underscorejs 访问 JSON 对象键/值,其中值是一个数组

java - jaxb 如何在解码过程中注入(inject)值

java - Jersey 将空列表和单元素列表序列化为数组

java - JAXB 注释和父类(super class)

PHP - 用另一个数组替换数组的值

php - 检测页面是否被机器人访问

java - 使用 Java 在 URL 请求中嵌套 JSON

javascript - 对象(字符串或数组)名称。如何得到它?

arrays - 使用 MATLAB 计算数组中出现的次数

mysql - mysql json 中的复杂正则表达式