Java對象轉(zhuǎn)json JsonFormat注解
寫在前面,首先,我用的java轉(zhuǎn)json序列化的工具是java開源的jackson。
今天在做后端接口的時候,發(fā)現(xiàn)獲取的json對象中少了幾個屬性,因為其他的接口都能得到正確的json,所以很快就找到了問題所在,先上代碼
public class ChargeDto implements Serializable {
private static final long serialVersionUID = -4617215025083571608L;
protected Integer cId;
protected String Item;
protected Double Amount;
protected Integer Vcid;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
protected Date CreateTime;
protected String CreateEName;
}
{
"status": 200,
"message": "成功",
"data": [
{
"CreateTime": "2020-05-04 01:41:19"
},
{
"CreateTime": "2020-05-04 02:10:11"
}]
}
是的,這里我的類中只有屬性,沒有g(shù)etter、setter方法,所以獲取的json中少了一些屬性。
解決方法一:后來我將類中的所有屬性加上了getter、setter方法之后得到了正確的json對象。
{
"status": 200,
"message": "成功",
"data": [
{
"cId": 1,
"item": "掛號",
"createEName": "醫(yī)生1",
"createTime": "2020-05-04 01:41:19",
"amount": 5,
"vcid": 1
},
{
"cId": 2,
"CreateTime": "2020-41-04 01:41:38",
"item": "處方結(jié)算",
"createEName": "醫(yī)生1",
"createTime": "2020-05-04 02:10:11",
"amount": 122,
"vcid": 1
}]
}
雖然很快解決了,但是我還是上網(wǎng)查了下原因,然后我查閱知曉對于我用的jackson來說,需要類中有g(shù)etter方法。是的,雖然我一次性把Setter方法也加上了,但是對于jackson將java對象轉(zhuǎn)json來說,只要有Getter方法就行了。甚至是不需要有屬性!
注意:java對象轉(zhuǎn)成json成立的基本條件只需要有g(shù)et方法!!
然后我發(fā)現(xiàn)我一開始雖然丟失了幾個屬性,但是我也是有屬性轉(zhuǎn)為了json的,就是CreateTime。于是我就注意到了我在CreateTime屬性上加的注解@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss"),我想著是不是和這個注解有關(guān),于是我將Getter方法刪去,在其他屬性上加上了注解
public class ChargeDto implements Serializable {
private static final long serialVersionUID = -4617215025083571608L;
protected Integer cId;
protected String Item;
@JsonFormat
protected Double Amount;
@JsonFormat
protected Integer Vcid;
@JsonFormat(pattern = "yyyy-MM-dd hh:mm:ss")
protected Date CreateTime;
protected String CreateEName;
}
然后在json中成功都得到了該屬性,
{
"status": 200,
"message": "成功",
"data": [
{
"Amount": 5,
"Vcid": 1,
"CreateTime": "2020-04-04 01:41:19"
},
{
"Amount": 122,
"Vcid": 1,
"CreateTime": "2020-04-04 01:41:38"
}]
}
所以,解決方法二:在你需要轉(zhuǎn)為json的屬性上加上@JsonFormat注解即可
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
JUC系列學(xué)習(xí)工具類CountDownLatch詳解
這篇文章主要介紹了JUC系列學(xué)習(xí)工具類CountDownLatch詳解,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可任意參考一下2022-08-08
在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明
這篇文章主要介紹了在MyBatis中使用 # 和 $ 書寫占位符的區(qū)別說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-10-10
java8 stream自定義分組求和并排序的實現(xiàn)
這篇文章主要介紹了java8 stream自定義分組求和并排序的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01

