代码之家  ›  专栏  ›  技术社区  ›  gabriel119435

JSON整数被读取为Java布尔真

  •  1
  • gabriel119435  · 技术社区  · 7 年前

    在RESTAPI请求JSON主体中,我正在传递 "argument1":true 它起作用了。但我发现,当使用任何数字时,它都会将其转换为真。仅在显式使用时 false 它变成了错误。我用的是弹簧靴 ResponseEntityExceptionHandler @RestControllerAdvice 处理所有异常。转换时我如何能引发任何异常 534 true ?

    1 回复  |  直到 7 年前
        1
  •  2
  •   noiaverbale    7 年前

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

    @InitBinder
    public void initBinder(WebDataBinder webDataBinder) {
        webDataBinder.registerCustomEditor(Boolean.class, new CustomBooleanEditor("true", "false", false));
    }
    

    弹簧记录默认值 CustomBooleanEditor 将“真”、“开”、“是”和任何非零数字映射为 true (也允许空值为 false 投掷 IllegalArgumentException 当值无效时。

    您可以重写它或提供自己的实现来引发特定的异常。