当我使用Include.NON_NULL时,错误响应是错误的;如果使用Include.NON_DEFAULT,则状态为200的响应是错误的
这就是我要寻找的:
状态:200 OK
{
"adultMovie": false,
"backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
"originalLanguageMovie": "en",
"originalTitleMovie": "Fire"
}
状态:400
{
"errors": [
{
"typeId": "FIELD_VALIDATION_ERRORS",
"field": "idMovie",
"message": "Invalid value of `fff` provided"
}
]
}
这是我到目前为止尝试过的: 我的模特:
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Movie implements Serializable {
private static final long serialVersionUID = -3515253168981789136L;
private boolean adultMovie;
private String backdropPathMovie;
private String originalLanguageMovie;
private String originalTitleMovie;
private Set<Error> errors;
}
状态:200 OK
{
"adultMovie": false,
"backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
"originalLanguageMovie": "en",
"originalTitleMovie": "Fire"
}
状态:400。验证错误
{
"adultMovie": false, // It shouldn't show up
"errors": [
{
"typeId": "FIELD_VALIDATION_ERRORS",
"field": "idMovie",
"message": "Invalid value of `513f` provided"
}
]
}
如果我尝试:
@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class Movie implements Serializable {
状态:200 OK
{
"backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
"originalLanguageMovie": "en",
"originalTitleMovie": "Fire"
} // Here should show up "adultMovie": false, as this field is set as false.
状态:400。验证错误
{
"errors": [
{
"typeId": "FIELD_VALIDATION_ERRORS",
"field": "idMovie",
"message": "Invalid value of `fff` provided"
}
]
}
答案 0 :(得分:0)
您的问题不清楚; 问题主题是问题的“主题”, 这不是问题的内容。
问题的根源:您必须学习如何计数。
说明:
boolean
可能恰好包含两个值;真假。
根据我对您想问的问题的想象,
似乎您想要包含三个值的东西;
正确,错误和未设置。
使用Boolean
作为adultMovie
字段的类型。
Boolean
是引用类型;
因此它可以具有三个值;
Boolean.TRUE,Boolean.FALSE和null。
与@JsonInclude(JsonInclude.Include.NON_NULL)
批注配合使用,
adultMovie
的空值将导致不包含“ adultMovie”条目的JSON。
答案 1 :(得分:0)
您可以使用布尔值代替布尔值,如下所示。布尔值的值为true或false,如果未设置,则默认值为false。因此,即使您手动设置了false值,也可以使用@JsonInclude(JsonInclude.Include.NON_DEFAULT)假定它为默认值,即使您需要此值也将忽略该值。另一方面,布尔值具有三个值,如true,false和null。因此,如果将其设置为false,它也将作为响应进行考虑。仅当您将其设置为null时,它才会包括在内。
私人布尔布尔成人电影;