考虑以下POJO:
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
@JsonInclude(content=Include.NON_NULL)
public class User {
@JsonProperty(required=true)
private String username;
private String dob;
private String email;
// ... (getters and setters)
}
考虑以下pojo的以下示例JSON:
{
"username": "foo",
"email": "foo@bar.com",
"dob": "12/21/1994"
}
如果我将字段指定为null
,则会在序列化时忽略该字段。
回答我的问题,是否有办法在必填字段为null
时停止序列化(抛出异常),因为目前杰克逊认为null
为因此,这不违反@JsonProperty(required=true)
我需要将username
字段始终存在于我的json中。
我尝试将@NotNull
与javax.validation:validation-api
一起使用,但这似乎不起作用。
这是一个 spring-boot 1.5.2 应用程序。
P.S。
请随时建议其他可用的API或编辑问题以使其更好。
答案 0 :(得分:-1)
你可以使用一些链接来帮助你。
mapper.setSerializationInclusion(Include.NON_NULL);
或:
@JsonInclude(Include.NON_NULL)
class User
{
private String username;
private String dob;
private String email;
......
.......
}