我正在尝试将 Java 对象转换为 Tomcat 中的 JSON(当前使用 Jackson)。基于 RESTful 请求中的字段,我只想序列化这些字段。我想支持对任何字段子集的请求,所以我想在运行时(动态地)这样做。
例如,假设我想支持 User 对象的部分序列化:
class User {
private final String id;
private final String firstName;
private final String lastName;
public User(String id, String firstName, String lastName) {
this.id = id;
this.firstName = firstName;
this.lastName = lastName;
}
public String getId() { return id; }
public String getFirstName() { return firstName; }
public String getLastName() { return lastName; }
}
如果我提出以下要求:
GET /users/{id}/?fields=firstName,lastName
我想得到类似的东西{"firstName":"Jack","lastName":"Johnson"}
。
如果我提出以下要求:
GET /users/{id}/?fields=firstName
我想得到类似的东西{"firstName":"Jack"}
。
Jackson 的JSON 视图能够定义要序列化的逻辑属性子集(通过 getter 或字段访问的事物)。但是,它们是静态定义的(使用注释)并且只能动态选择(每个序列化)。在实践中,我希望支持请求对象字段的任何子集,因此我可能拥有数千个 JSON 视图(10 个字段意味着 1,023 个子集!)。
什么 JSON 库在运行时支持部分序列化?