当前位置: 首页 > 知识库问答 >
问题:

Spring MVC Rest服务JSON-将布尔值的默认值设置为true

邹高峻
2023-03-14

boolean的默认值设置为true

这是具有布尔值的dto clas。

DTO类

public class SensitivityDto extends AuditableEntity implements Serializable {
    private static final long serialVersionUID = 1L;


    private long sensitivityId;
    @JsonIgnore
    private boolean isSelected;

    public SensitivityDto() {
    }
    /** other getter/setters */
    public boolean isIsSelected() {
        return isSelected;
    }

    public void setIsSelected(boolean isSelected) {
        this.isSelected = isSelected;
    }

}

输入json

{
  "sensitivity": {
    "sensitivityId": 100,
    "isSelected": "true", // if not passing this field always its treated as null.

  }
}

控制器

public @ResponseBody ResultDecorator saveLabResultCultureDetails(@RequestBody SensitivityDto sensitivityDto) throws  Exception {

}

如何将布尔值default设置为true,这样,如果这个值在json中不存在,那么它就不应该为false,而应该为true。

共有1个答案

邢璞
2023-03-14

那么...怎么样

@JsonIgnore
private boolean isSelected = true;

从评论中可以看出:

然后,即使我在json中发送false,它也被视为true

您必须删除@JsonIgnore并使用@jsonautodect,如下所示:

import java.io.Serializable;
import com.fasterxml.jackson.annotation.JsonAutoDetect;
import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility;

@JsonAutoDetect(fieldVisibility = Visibility.ANY, getterVisibility = Visibility.NONE, setterVisibility = Visibility.NONE)
public class SensitivityDto extends AuditableEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    private long sensitivityId;


    private boolean isSelected = true;

    public SensitivityDto() {
    }

    /** other getter/setters */
    public boolean isIsSelected() {
        return isSelected;
    }

    public void setIsSelected(boolean isSelected) {
        this.isSelected = isSelected;
    }

}
 类似资料:
  • 问题内容: 为什么在编写时默认分配给变量而不是变量? 我之所以问是因为,我遇到了一些代码,其中有一个关于布尔变量的求值,即是否确定是否执行方法。 问题答案: 布尔(带有大写的“ B”)是一个布尔对象,如果未分配值,则默认为null。布尔值(带有小写的“ b”)是布尔值基元,如果未分配值,则默认为false。

  • 我如何将@瞬态布尔值的默认值设置为false?每次我得到我的对象时,该值都是true。我尝试使用“@列(nullable=false,列定义=”布尔默认为false”)”但不起作用 Thx =)

  • 我尝试使用liquibase使用liquibase“addDefaultValue”语法将我的列的默认值设置为null: 但是向myTable插入新行显示默认值仍然设置为“false”,就像以前一样。所以liquibase更改集不起作用。 如何设置列默认值为null与liquibase?

  • 我想为布尔值定义默认值false,但它似乎仍然是true,因为它在昂首阔步上是默认值。 我如何定义它以将false视为默认值。 昂首阔步的请求: Dto类

  • 我打算使用JAXB从xsd生成类,并使用xsd中的默认值。但当我将xs:boolean元素的默认值设置为“true”时。该值未设置,我得到空指针异常,因为布尔对象值尚未初始化为true。 我做错了什么?我们可以只为xs:string而不是xs:boolean设置默认值吗? 生成的xml文件是这样的: 当我尝试调用函数时: 或 我得到了空指针错误。虽然在我的代码中我已经处理了这个空值。 我只是好奇为

  • 问题内容: 例如,如果component是一个复选框,则必须将其设置为false,或者是textfield,则必须清除文本。我正在尝试编写一种方法来重置中的所有组件。它必须像HTML表单中的reset函数一样工作。 如何将a重设为默认值? 问题答案: 一种可能的解决方法是创建自定义重置功能。重新初始化面板(您的表单)。 例如 创建一个自定义类来存储表单字段及其侦听器。 重新初始化面板组件将导致按@