1. 程式人生 > 其它 >jackson在序列化時將欄位開頭大寫轉成小寫,反序列化中JsonMappingException異常

jackson在序列化時將欄位開頭大寫轉成小寫,反序列化中JsonMappingException異常

1.jackson在序列化過程中會將大寫開頭的欄位自動轉成小寫開頭

public class BrandRequest {

    @JsonProperty(value="UPDATE_TIME") 
private String UPDATE_TIME;

public Date getUPDATE_TIME() {
  return UPDATE_TIME;
  }
  public void setUPDATE_TIME(Date uPDATE_TIME) {
    UPDATE_TIME
= uPDATE_TIME;
  }
}

此時在序列號和過程中首字母(或者首單詞)被轉成小寫。

解決方法

@JsonAutoDetect(getterVisibility=JsonAutoDetect.Visibility.NONE)
public class BrandRequest {
}

2.在反序列化中,源物件出現了目標物件沒有的欄位,造成JsonMappingException

解決方法,設定DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES

ObjectMapper mapper = new ObjectMapper();
       
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false
); try { return mapper.readValue(json, clazz); } catch (JsonParseException e) { logger.info("---jsonToObject2---JsonParseException異常", e); } catch (JsonMappingException e) { logger.info("---jsonToObject2---JsonMappingException異常", e); } catch (IOException e) { logger.info("---jsonToObject2---IOException異常", e); }