jackson序列化字段字母大小寫

2021-10-10 19:37:08 字數 827 閱讀 9508

**從springboot預設的jackson切換到fastjson 發現欄位xaxis 從xaxis 變成了xaxis

使用lombok@getter註解實現get方法

發現該方法的get方法為getxaxis 根據jackson序列化規則會轉化為 xaxis

fastjson 是根據欄位名直接返回的 因此造成不同

解決方案 通過註解指定返回物件的欄位名稱

所有被public修飾的字段(成員變數);

所有被public修飾的getter(即形如「get***()」的方法);

所有被public修飾的setter(即形如「set***(value)」的方法)。

欄位名是通過get方法名轉換過來的, 所以會出現字母大小寫問題(當前幾個都是大寫的字母,都會轉換成小寫,直到不是大寫為止,若小寫後面還有大寫,則保持大寫。), 以及如果用@jsonproperty("")強制序列化為某個名稱時, 如果不在get/set方法上加@jsonignore則會出現兩個字段,乙個首字母大寫, 乙個首字母小寫。可以將屬性用private修飾,在get方法上加@jsonproperty。

- @jsonautodetect(fieldvisibility=jsonautodetect.visibility.any, gettervisibility=jsonautodetect.visibility.none)

1.jsonautodetect.visibility.any : 表示所有欄位都可以被發現, 包括private修飾的字段, 解決大小寫問題;

2.jsonautodetect.visibility.none : 表示get方法不可見,解決字段重複問題。

參考:

基於jackson動態序列化指定字段

把物件序列化為json字串輸出的庫很多,本文我們來看如何基於jackson動態控制哪些屬性需要進行序列化。對應使用jackson,需要我們在pom檔案中引入下面依賴 com.fasterxml.jackson.core jackson databind 2.11.1 首先簡單看下如何使用 data ...

如何基於jackson動態序列化指定字段

把物件序列化為json字串輸出的庫很多,本文我們來看如何基於jackson動態控制哪些屬性需要進行序列化。對應使用jackson,需要我們在pom檔案中引入下面依賴 com.fasterxml.jackson.core jackson databind 2.11.1 首先簡單看下如何使用 data ...

Jackson忽略欄位不序列化欄位的3種方法

相對於忽略null欄位,在實際應用中,忽略某些欄位的序列化可能更為常見。jackson對於如何序列化字段 過濾欄位的方法多種多樣,非常豐富,這一節先來了解一下3種簡單的方法。本篇內容基於jackson 2.11.2版本,馬上開始學習吧。為字段新增 jsonignore註解,可以忽略該字段的序列化和反...