在實際開發過程中對於物件轉json有很多的工具類,這裡使用的是jackson
springboot 中jackson的用法
1 springboot工程本身就整合了jackson 只要是引入
org.springframework.boot
spring-boot-starter-web
這個pom的可以直接使用
springboot @restcontorller 註解轉化json 底層使用的也是jackson
2 其他工程使用jackson主要引入的pom
com.fasterxml.jackson.core
jackson-annotations
2.8.6
com.fasterxml.jackson.core
jackson-databind
2.8.6
com.fasterxml.jackson.core
jackson-core
2.8.6
實際上只要引入pom
com.fasterxml.jackson.core
jackson-databind
2.8.6
就可以了包含了其他兩個包
一、對於列舉轉化為json
1 在專案中經常使用到列舉,對於列舉如果我們不做處理直接轉化為json
public enum flagdeleteenum implements commonenum
public int getcode()
// @jsonvalue
public string getmsg()
public static flagdeleteenum valueof(int code)
}
測試
結果
可以看到只顯示列舉no 並不是需要的實際code 或者是msg
2 當把@jsonvalue 注釋放開後 實際輸出的結果是
ps:只要在想要屬性的get方法上使用@jsonvalue 就可以在轉化成json的時候獲取需要的值
二 、物件轉化為json
1 物件的使用跟列舉是一樣的
在需要的屬性的get方法上新增@jsonvalue 那麼就可以在轉化成json獲取自己需要的值
ps:這裡暫時只做過乙個類使用乙個@jsonvalue註解的場景
@jsonvalue 更多的是想map中獲取key-value中某乙個的操作
三、json其他註解
jackson提供了一系列註解,方便對json序列化和反序列化進行控制,下面介紹一些常用的註解。
@jsonignore 此註解用於屬性上,作用是進行json操作時忽略該屬性。
@jsonformat 此註解用於屬性上,作用是把date型別直接轉化為想要的格式,如@jsonformat(pattern = 「yyyy-mm-dd hh-mm-ss」)。
@jsonproperty 此註解用於屬性上,作用是把該屬性的名稱序列化為另外乙個名稱,如把truename屬性序列化為name,@jsonproperty(「name」)。
測試結果
參考文件
jackson 次序變了 Jackson示例6頁
職工津貼 津貼end 錶行end 表體end close 名冊表名冊 end 例 乙個正文檔案由若干個記錄組成,每個記錄是乙個字串。要求統計每個記錄中 空格字元的個數,以及檔案中空格字元的總個數。要求的輸出資料格式是,每複製一行輸入 字串之後,另起一行印出這個字串中的空格數,最後印出檔案中空格的總個...
Jackson 處理 模型
jackson可以自動把model轉換成 json格式,但json的key是模型的字段,如果要返回的key和模型的欄位名不一致,可以用如下方法 public class catnode public void setname string name public string geturl publ...
jackson 用法總結
1.序列化與反序列化封裝 private static final logger logger logge ctory.getlogger jsonutil.class object物件轉換為string param data object物件 return object物件對應的字串 public...