Spring JSONI包括如何仅在未赋值时忽略默认值布尔值

Spring JSONI包括如何仅在未赋值时忽略默认值布尔值,spring,rest,jackson,Spring,Rest,Jackson,当我使用Include.NON_NULL时,错误响应是错误的,如果我使用Include.NON_DEFAULT,状态为200的响应是错误的 这就是我要找的: 状态:200 OK { "adultMovie": false, "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg", "originalLanguageMovie": "en", "originalTitleMovi

当我使用Include.NON_NULL时,错误响应是错误的,如果我使用Include.NON_DEFAULT,状态为200的响应是错误的

这就是我要找的:

状态:200 OK

{
        "adultMovie": false,
        "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
        "originalLanguageMovie": "en",
        "originalTitleMovie": "Fire"
} 
{
    "adultMovie": false,
    "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
    "originalLanguageMovie": "en",
    "originalTitleMovie": "Fire"
}
{
        "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"
        }
    ]
}
这就是我迄今为止所尝试的: 我的模型:

@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;
}
现状:400。验证错误

{
        "adultMovie": false, // It shouldn't show up
        "errors": [
            {
                "typeId": "FIELD_VALIDATION_ERRORS",
                "field": "idMovie",
                "message": "Invalid value of `513f` provided"
            }
        ]
}
{
    "errors": [
        {
            "typeId": "FIELD_VALIDATION_ERRORS",
            "field": "idMovie",
            "message": "Invalid value of `fff` provided"
        }
    ]
}
如果我尝试:

@JsonInclude(JsonInclude.Include.NON_DEFAULT)
public class Movie implements Serializable {
状态:200 OK

{
        "adultMovie": false,
        "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
        "originalLanguageMovie": "en",
        "originalTitleMovie": "Fire"
} 
{
    "adultMovie": false,
    "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
    "originalLanguageMovie": "en",
    "originalTitleMovie": "Fire"
}
{
        "backdropPathMovie": "/2U3hyiVzzhYzS6j9fcdVW4mO4Uk.jpg",
        "originalLanguageMovie": "en",
        "originalTitleMovie": "Fire"
} // Here should show up "adultMovie": false, as this field is set as false. 
现状:400。验证错误

{
        "adultMovie": false, // It shouldn't show up
        "errors": [
            {
                "typeId": "FIELD_VALIDATION_ERRORS",
                "field": "idMovie",
                "message": "Invalid value of `513f` provided"
            }
        ]
}
{
    "errors": [
        {
            "typeId": "FIELD_VALIDATION_ERRORS",
            "field": "idMovie",
            "message": "Invalid value of `fff` provided"
        }
    ]
}

你的问题不清楚; 问题主体是问题的“主体”, 这不是问题的内容

问题的根源:你必须学会数数

说明:
一个
布尔值
可能正好包含两个值;真假。 根据我对你想问的问题的想象, 看起来你想要的东西包含三个值; 正确、错误和未设置

使用
Boolean
作为
adultMovie
字段的类型。
Boolean
是一种引用类型; 因此,它可以有三个值; Boolean.TRUE、Boolean.FALSE和null

@JsonInclude(JsonInclude.Include.NON_NULL)
注释一致,
adultMovie
的空值将导致JSON不包含“adultMovie”条目。

您的问题不清楚; 问题主体是问题的“主体”, 这不是问题的内容

问题的根源:你必须学会数数

说明:
一个
布尔值
可能正好包含两个值;真假。 根据我对你想问的问题的想象, 看起来你想要的东西包含三个值; 正确、错误和未设置

使用
Boolean
作为
adultMovie
字段的类型。
Boolean
是一种引用类型; 因此,它可以有三个值; Boolean.TRUE、Boolean.FALSE和null

@JsonInclude(JsonInclude.Include.NON_NULL)
注释一致,
adultMovie
的空值将导致JSON不包含“adultMovie”条目。

对于布尔值,您可以使用如下布尔值。布尔值为true或false,如果未设置,则默认值为false。因此,对于@JsonInclude(JsonInclude.Include.NON_DEFAULT),即使您手动设置了false值,它也将假定它是默认值,并将忽略此值,即使您在响应中需要此值。另一方面,布尔值有三个值,如true、false和null。所以,如果你把它设置为假,它也会在反应中考虑。只有当您设置为null时,它才不会包含在响应中


私人成人电影

相反,您可以使用布尔值,如下所示。布尔值为true或false,如果未设置,则默认值为false。因此,对于@JsonInclude(JsonInclude.Include.NON_DEFAULT),即使您手动设置了false值,它也将假定它是默认值,并将忽略此值,即使您在响应中需要此值。另一方面,布尔值有三个值,如true、false和null。所以,如果你把它设置为假,它也会在反应中考虑。只有当您设置为null时,它才不会包含在响应中


私人成人电影

很抱歉问这个问题。实际上,我想要一个有3个可能的值的东西,它和你提到的布尔值一起工作。谢谢你的帮助很抱歉问这个问题。实际上,我想要一个有3个可能的值的东西,它和你提到的布尔值一起工作。谢谢你的帮助