Java對(duì)象轉(zhuǎn)json JsonFormat注解
寫(xiě)在前面,首先,我用的java轉(zhuǎn)json序列化的工具是java開(kāi)源的jackson。
今天在做后端接口的時(shí)候,發(fā)現(xiàn)獲取的json對(duì)象中少了幾個(gè)屬性,因?yàn)槠渌慕涌诙寄艿玫秸_的json,所以很快就找到了問(wèn)題所在,先上代碼
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' }]}
是的,這里我的類(lèi)中只有屬性,沒(méi)有g(shù)etter、setter方法,所以獲取的json中少了一些屬性。
解決方法一:后來(lái)我將類(lèi)中的所有屬性加上了getter、setter方法之后得到了正確的json對(duì)象。
{ 'status': 200, 'message': '成功', 'data': [ { 'cId': 1, 'item': '掛號(hào)', '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)查了下原因,然后我查閱知曉對(duì)于我用的jackson來(lái)說(shuō),需要類(lèi)中有g(shù)etter方法。是的,雖然我一次性把Setter方法也加上了,但是對(duì)于jackson將java對(duì)象轉(zhuǎn)json來(lái)說(shuō),只要有Getter方法就行了。甚至是不需要有屬性!
注意:java對(duì)象轉(zhuǎn)成json成立的基本條件只需要有g(shù)et方法?。?/p>
然后我發(fā)現(xiàn)我一開(kāi)始雖然丟失了幾個(gè)屬性,但是我也是有屬性轉(zhuǎn)為了json的,就是CreateTime。于是我就注意到了我在CreateTime屬性上加的注解@JsonFormat(pattern = 'yyyy-MM-dd hh:mm:ss'),我想著是不是和這個(gè)注解有關(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注解即可
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. moment轉(zhuǎn)化時(shí)間戳出現(xiàn)Invalid Date的問(wèn)題及解決2. python爬蟲(chóng)實(shí)戰(zhàn)之制作屬于自己的一個(gè)IP代理模塊3. WML的簡(jiǎn)單例子及編輯、測(cè)試方法第1/2頁(yè)4. Ajax返回值類(lèi)型與用法實(shí)例分析5. .NET6打包部署到Windows Service的全過(guò)程6. 解決ajax請(qǐng)求后臺(tái),有時(shí)收不到返回值的問(wèn)題7. 開(kāi)發(fā)效率翻倍的Web API使用技巧8. asp批量添加修改刪除操作示例代碼9. 使用JSP技術(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的在線測(cè)試系統(tǒng)的實(shí)例詳解10. HTML 絕對(duì)路徑與相對(duì)路徑概念詳細(xì)
