【发布时间】:2017-12-13 17:36:23
【问题描述】:
我有一个这样的模型:
public class Employee {
@JsonProperty("emplyee_id")
private Integer id;
@JsonProperty("emplyee_first_name")
private String firstName;
@JsonProperty("emplyee_last_name")
private String lastName;
@JsonProperty("emplyee_address")
private String address;
@JsonProperty("emplyee_age")
private Byte age;
@JsonProperty("emplyee_level")
private Byte level;
//getters and setters
}
现在我需要使用这个(唯一的)模型创建两个 JSON。
第一个必须像这样,例如:
{
"employee_id":101,
"employee_first_name":"Alex",
"employee_last_name":"Light",
"employee_age":null,
"employee_address":null
}
第二个必须像这样,例如:
{
"employee_id":101,
"employee_level":5
}
顺便说一句,我已经测试过@JsonIgnore 和@JsonInclude(JsonInclude.Include.NON_NULL)。
第一个问题(据我所知)是,这些字段不能包含在其他 JSON 中(例如,如果 level 获取此注释,则不会包含在第二个 JSON 中)
第二个的问题是,null 值不能包含在 JSON 中。
那么我是否可以保留空值并防止某些其他属性包含在 JSON 中而不创建额外的模型?如果答案是肯定的,那我该怎么做?如果不是,我真的很感激有人给我这个状态的最佳解决方案。
非常感谢。
【问题讨论】:
-
使用@JsonView(XXX.class)注解
-
@KalaiselvanA 我可以在两个 JSON 中使用带有此注释的字段吗?