禁用使用Jackson将非布尔值自动转换为布尔值

时间:2018-11-02 19:43:39

标签: java spring-boot jackson

我正在寻找一种方法来禁用要在请求正文中使用的非布尔值。例如:

my $executeRowUpdate = $dbConnection->do($updateRow);

在MyPjo中,杰克逊将{ "prop": 23 } 转换为true的{​​{1}}:

myprop

禁用 public ResponseEntity action(@RequestBody @Valid MyPojo myPojo) { } public class MyPojo { @NotNull private final boolean myprop; @JsonCreator public MyPojo(@JsonProperty(value = "prop", required = true) boolean myprop) { this.myprop = myprop; } } 的非布尔值并在发生这种情况时抛出异常的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

在这种情况下,对于所有已验证的字段,我认为最好的方法是考虑这种自定义验证。 您可以为布尔值创建自定义约束,如下所示:
    https://docs.jboss.org/hibernate/validator/5.0/reference/en-US/html/validator-customconstraints.html#validator-customconstraints

因此您可以在字段上添加自定义约束

    @ValidBoolean
    private boolean isReal;