如何在SpringBoot控制器中验证请求体的字段(自定义Jackson)

时间:2017-03-25 19:48:55

标签: java json spring jackson

SpringBoot控制器使用@RequestBody这是一个bean类,例如它是一个带有字段列表的类。其中一些字段是只读的,我想在用户尝试发送更新请求时抛出异常。

我使用自定义@ReadOnly注释来标记类Basket的只读字段。我想以杰克逊构造对象篮子的方式自定义杰克逊 - 它应该用注释分析bean并在传入的JSON包含只读字段时抛出异常。

请不要建议JSR-303 Bean验证。

1 个答案:

答案 0 :(得分:0)

您可以编写自定义反序列化程序,并可以使用以下代码访问注释并编写逻辑以抛出异常。

for (Field f: Basket.class.getFields())     {  
               ReadOnly readOnly = f.getAnnotation(ReadOnly.class);  
               if (readOnly != null)  
                  // your logic can go here.  
              }