天天看點

Jackson2JsonRedisSerializer報錯Could not read JSON: Unrecognized field...nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “credentialsSalt” (class com.scl.user.domain.SysUser), not marked as ignorable

nested exception is com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field “credentialsSalt” (class com.scl.user.domain.SysUser), not marked as ignorable

  1. 說明:

    在實體類SysUser中,寫了一個方法:

/**
     * 加鹽
     * @return
     */
    public String getCredentialsSalt() {
        return username + salt;
    }
           
但是credentialsSalt不是SysUser實體類的一個屬性,發現在redis中儲存的json字元串卻有credentialsSalt屬性:
           
["com.scl.user.domain.SysUser",{"id":"b2edd69c593547bfaa9d854db2442c43",
"username":"scl",
"password":"e7e4c6820a93d65cf7ea0cb2a53b4d27",
"salt":"b91fbff177d9e463846f783ce4b889ef",
"isLocked":,"isDelete":,
"createBy":"b2edd69c593547bfaa9d854db2442c43",
"createTime:["java.util.Date",1486457416000]",
"updateBy":null,"updateTime":null,
"credentialsSalt":"sclb91fbff177d9e463846f783ce4b889ef"}]
           
确定名為get...的方法在Jackson2JsonRedisSerializer使用中 會被序列化成一個屬性值到json字元串中。
           
  1. 解決方案:

    除了實體類的屬性的getter方法,不要寫其他的getter方法(用其他方法名代替)