仅将 POJO 集转换为 JSON returns "id" 个字段

Convert Set of POJOs to JSON returns only "id" fields

我的项目中有一个特殊问题。我已经从基于 Jersey+Grizzly2+Moxy 的 mvn 原型引导了一个 REST 端点。 此端点 returns DataSource 中所有 POJO 的 Set。所以发生的事情是当我 @GET 端点它 returns this:

[{"id":1},{"id":0}]

对于数据源中的 2 个对象。如果我 println 这些对象我得到:

[[1 username1 fullName1 ROLE_USR], [0 username2 fullName2 ROLE_USR]]

这是怎么回事?为什么它不序列化所有字段而只显示 id 字段?

编辑 1: 添加我的 POJO 定义:

public class User  {

    private int id;
    private final String emailAddress;
    private final String username;
    private String password;
    private String displayName;
    private String description;
    private USER_ROLE role;

    // Constructors, setters & getters

    @Override
    public String toString() {
        return "[" + id + " " +
                username + " " +
                displayName + " " +
                role + "]";
    }
}

通过切换回 Jackson 解决了问题。作为推荐的 JSON 库,MOXy 似乎没有完成它的工作。替换

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-moxy</artifactId>
    <version>${jersey.version}</version>
</dependency>

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-json-jackson</artifactId>
    <version>${jersey.version}</version>
</dependency>

成功了,现在我的端点 returns 预期值。