有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何在spring boot中对rest控制器方法端点应用json ignore注释?

我有一门课叫Customer

Customer{
   private int ID;
   private IDCard idCard;
}

还有身份证。爪哇

IDCard{
   private int id;
   private int score;
}

我有两个端点,端点01和端点02。 因此,当我使用endpoint01添加客户时,必须提供分数。但当我使用endpoint02添加customer时,分数不是强制性的

由于我在两个端点的控制器方法中使用相同的客户模型,Jackson抛出错误,因为在endpoint02上我没有提供分数。 在这种情况下,很明显我不能在我的IDCard模型中应用json ignore。因此,我如何告诉endpoint02忽略不存在的分数字段,并仅在json对象中存在该字段时反序列化

这是我的电话号码

@RequestMapping(method=RequestMethod.POST, value="/add",headers="Accept=application/json")
public @ResponseBody Map<String,List<String>> add(@RequestBody Customer customer)  {
    return customerSvc.add(customer);
}

共 (2) 个答案

  1. # 1 楼答案

    您需要的是POJO上的注释,而不是端点上的注释

    IDCard{
    
       @JsonProperty(vaue="id" , required=false)
       private int id;
       @JsonProperty(vaue="score" , required=false)
       private int score;
    
    }
    

    这将允许在反序列化对象时避免使用字段

    注意:注意封装

  2. # 2 楼答案

    可以对特定属性应用忽略注释