POJO 属性在 JAX-RS 中作为 JSON 的数组返回

POJO attributes is returning as a Array for JSON in JAX-RS

我有一个 java web maven 项目,JAX-RS 使用 resteasy 版本 2.2.1.GA 实现。项目上的所有 JAX-RS 资源产生 y 消耗 application/json。我的问题是,当我返回单个 POJO 时,即使是这样的数组,也只序列化属性的值。

示例:

给出以下 类:

public class Pojo {

    private Integer attr1;

    private String attr2;

    // GETTERs and SETTERs

}


@Path("pojos")
@Consumes("application/json")
@Produces("application/json")
public class PojoResource {

    @GET
    public Response list() {
        List<Pojo> listResult = new ArrayList<>();
        Pojo pojo = new Pojo();
        pojo.setAttr1(1);
        pojo.setAttr2("asdf");
        listResult.add(pojo);
        return Response.ok().entity(listResult).build();
    }
}

如果我向 /pojos 发出 GET 请求,上面示例的结果是 [[1, "asdf"]],而不是 [{"attr1":1,"attr2":"asdf"}]

不知道是否需要写一个具体的Provider。我的项目配置类似于this.

我意识到我的错误是层模型中的数据恢复是作为对象的向量并且 return 没有处理(创建表示数据的 POJO)。