长大后想做什么?做回小孩!

0%

JsonMappingException解决方法

异常信息:com.fasterxml.jackson.databind.JsonMappingException: Conflicting setter definitions for property “is_head”: com.luttica.ess.model.user.UserInfo#setHead(1 params) vs com.luttica.ess.model.user.UserInfo#setHead(1 params)

反序列化注入失败的类:

1
2
3
4
5
6
7
8
9
10
11
12
public class UserInfo{  
@JsonProperty("is_head")
private boolean head;

public boolean isHead() {
return head;
}

public void setHead(int head) {
this.head = head == 1;
}
}

因为属性名是“is_head”,但是没有 setIsHead() 方法,所以出现异常。

解决方法:

  1. setHead() 方法名修改为 setIsHead()。问题解决,但是这样的 set 方法命名过于别扭。

    1
    2
    3
    public void setIsHead(int head) {
    this.head = head == 1;
    }
  2. @JsonProperty("basic_pay_id") 注解添加到 setHead() 方法上即可。

    1
    2
    3
    4
    @JsonProperty("is_head")
    public void setHead(int head) {
    this.head = head == 1;
    }

成功反序列化,问题解决!


菜鸟本菜,不吝赐教,感激不尽!

更多题解源码和学习笔记:githubCSDNM1ng