我正在研究由js MVC框架使用的球衣REST服务的POC.上的我需要返回其将被用于用户配置对象(由杰克逊序列化到JSON)的形式中的一种预先填充HTML表单.在表单提交时,只有一个字段的子集必须发送到服务器(因为某些字段,如"role"是只读的,不得更改)因此输入JSON将映射到UserProfileUpdateRequest对象.从服务器代码维护的角度来看,我希望这两个对象之间有关系,因为UserProfileUpdateRequest将是UserProfile的子集,所以我的第一选择是使用组合:UserProfile包含UserProfileUpdateRequest.问题是,当JackPon将UserProfile序列化为JSON时,引用的UserProfileRequest实例的所有属性都将包含在userProfileRequest字段中 - 这似乎很自然,但对JS人员来说是不可接受的(至少我被告知这是不可接受的) ).有没有什么方法可以强迫杰克逊"平"根对象和指向哪些引用对象的属性必须在root下序列化?一个小例子
class UserProfileRequest{
private String a;
private String b;
...
}
class UserProfile{
private String role;
...
private UserProfileRequest userProfileRequest;
}
Run Code Online (Sandbox Code Playgroud)
因此,当UserProfile被序列化时,我得到:
{"role":"admin",...,"userProfileRequest":{"a":"...","b":"...",...}}
Run Code Online (Sandbox Code Playgroud)
但是想得到
{"role":"admin",...,"a":"...","b":"...",...}
Run Code Online (Sandbox Code Playgroud)
我正在使用Jackson 1.9.7.
nut*_*ike 21
我想你正在寻找@JsonUnwrapped注释.
class UserProfile{
private String role;
...
@JsonUnwrapped
private UserProfileRequest userProfileRequest;
}
Run Code Online (Sandbox Code Playgroud)
编辑:这是Jackson 1.9.9中@JsonUnwrapped的链接,所以它也应该在1.9.7中提供.
| 归档时间: |
|
| 查看次数: |
3898 次 |
| 最近记录: |