仅将 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 预期值。
我的项目中有一个特殊问题。我已经从基于 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 预期值。