Json整数被读取为java布尔值true

Json整数被读取为java布尔值true,json,spring-boot,boolean,Json,Spring Boot,Boolean,在RESTAPI请求json正文中,我传递了“argument1”:true,它可以工作。但我发现,当使用任何数字时,它都会将其转换为真。只有在明确使用false时,它才会变为false。我正在使用Spring BootResponseEntityExceptionHandler和@RestControllerAdvice来处理所有异常。在将534转换为true时,如何引发异常?在控制器中添加一个用@InitBinder注释的方法,并提供一个自定义布尔编辑器 @InitBinder public

在RESTAPI请求json正文中,我传递了
“argument1”:true
,它可以工作。但我发现,当使用任何数字时,它都会将其转换为真。只有在明确使用
false
时,它才会变为false。我正在使用Spring Boot
ResponseEntityExceptionHandler
@RestControllerAdvice
来处理所有异常。在将
534
转换为
true
时,如何引发异常?

在控制器中添加一个用
@InitBinder
注释的方法,并提供一个自定义布尔编辑器

@InitBinder
public void initBinder(WebDataBinder WebDataBinder){
webDataBinder.registerCustomEditor(Boolean.class,新的CustomBooleanEditor(“真”、“假”、“假”);
}
Spring将默认映射“true”、“on”、“yes”和任何非零数注册为
true
(也允许空值为
false
),当值无效时抛出
IllegalArgumentException


您可以重写它,也可以提供自己的实现来抛出特定的异常。

您希望
argument1
的类型是boolean还是int?我的意思是,当
argument1
是整数而不是布尔值时,您希望spring binder抛出异常?@noiaverbale,正如您所述。我想拒绝任何非布尔值(只有真或假),谢谢你的信息。请您将任何文档链接到该信息,好吗?提前谢谢这不算多,但是。现在找不到默认转换器/编辑器的列表。当有@RequestBody时,我无法实现此功能……因此它不是表单,只是一个rest端点……在这种情况下也可以吗?