




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第關于@JSONField和@JsonFormat的使用區別說明@JSONField和@JsonFormat的區別
@JSONField是阿里巴巴下fastjson下的,@JsonFormat是jackson下面的。
一、@JSONField的常用方式
1.1、name的用法:
實體類:
packagecom.xiaobu.entity;
importcom.alibaba.fastjson.annotation.JSONField;
importlombok.Data;
importjavax.persistence.*;
importjava.io.Serializable;
*@authorxiaobu
*@versionJDK1.8.0_171
*@dateon2025/12/419:00
*@descriptionV1.0
@Data
publicclassRolesimplementsSerializable{
privatestaticfinallongserialVersionUID=5775171105018867238L;
@JSONField(name=role_id)
@Column(name=RoleId)
privateIntegerRoleId;
@JSONField(name=role_desc)
@Column(name=RoleDesc)
privateStringRoleDesc;
}
測試類:
*@authorxiaobu
*@date2025/12/516:53
*@descprition表明json不區分大小寫都能轉換
*@version1.0
*beantoJSON:{role_desc:admin,role_id:8}
*需要轉換的json:{ROLE_DESC:ADMIN,ROLE_ID:8}
*RoleDesc:ADMIN
@Test
publicvoidtestJSONField(){
Rolesroles=newRoles();
roles.setRoleDesc(admin
roles.setRoleId(8);
StringjsonStr=JSONObject.toJSONString(roles);
System.out.println(beantoJSON:+jsonStr);
//改變json的key為大寫
jsonStr=jsonStr.toUpperCase();
System.out.println(需要轉換的json:+jsonStr);
roles=JSONObject.toJavaObject(JSONObject.parseObject(jsonStr),Roles.class);
System.out.println(RoleDesc:+roles.getRoleDesc());
}
1.2format的用法:
實體類:
*任務接收時間
@JsonFormat(pattern=yyyy-MM-dd,timezone=GMT+8)
@JSONField(format=yyyy-MM-dd)
@Column(name=TaskAcceptTime)
privateDateTaskAcceptTime;
*任務完成時間
@JsonFormat(pattern=yyyy-MM-ddHH:mm:ss,timezone=GMT+8)
@JSONField(format=yyyy-MM-dd)
@Column(name=TaskCompleteTime)
privateDateTaskCompleteTime;
測試類:
@Test
publicvoidfindByExample(){
Tasktask=newTask();
task.setTaskId(HYR08274-0804
Exampleexample=newExample(Task.class);
Example.Criteriacriteria=example.createCriteria();
if(StringUtils.isNotBlank(task.getTaskId())){
criteria.andLike(TaskId,%+task.getTaskId()+%
//TaskAcceptTime=MonAug0400:00:00CST2008,TaskCompleteTime=FriNov0700:00:00CST2008
ListTasktasks=taskMapper.selectByExample(example);
System.out.println(tasks);
//taskAcceptTime:2008-08-04,taskCompleteTime:2008-11-07
StringfastJsonStr=JSON.toJSONString(tasks);
System.out.println(fastJsonStr=+fastJsonStr);
ObjectMapperMAPPER=newObjectMapper();
try{
//TaskAcceptTime:2008-08-04,TaskCompleteTime:2008-11-0700:00:00
Stringujosn=MAPPER.writeValueAsString(tasks);
System.out.println(ujosn=+ujosn);
}catch(JsonProcessingExceptione){
e.printStackTrace();
}
@JsonFormat(pattern=yyyy-MM-dd,timezone=GMT+8)必須加上時區。
@JSONField(format=yyyy-MM-dd)
這兩個的作用都是格式化日期時間。且只能作用在日期時間上。
補充:前臺傳后臺
@DateTimeFormat(pattern=yyyy-MM-dd)
@JsonFormat與@DateTimeFormat用法及注意事項
@JsonFormat
@JsonFormat,使用該注解前需要添加jackson相關的依賴包
用于服務器傳給前端json數據時對Date類型時間進行的格式化
@JsonFormat(pattern=yyyy-MM-ddHH:mm:ss,timezone=GMT+8)
pattern就表示需要轉變的格式,timezone表示處在的時區(國內是東八區)
因為,jackson在序列化時間時是按照國際標準時間GMT進行格式化的,而在國內默認時區使用的是CST時區,兩者相差8小時
如果沒有用@JsonFormat對時間進行格式化,返回給前端的將是一個時間戳。如圖所示。
使用了@JsonFormat之后,時間格式正確顯示。如圖所示。
@JsonFormat(pattern=yyyy-MM-ddHH:mm:ss,timezone=GMT+8)
注意事項
@JsonFormat(pattern=yyyy-MM-ddHH:mm:ss,timezone=GMT+8)
pattern中定義的格式的大小寫要注意,不要寫錯。。。
@DateTimeFormat
@DateTimeFormat是spring的注解,spring工程下不在需要額外引入其他依賴
由于客戶端傳給服務端的時間參數是字符串類型,如果直接使用java.util.Date下的Date接受的話,會報400的異常(400異常表示服務器不處理該請求,多半是傳入的參數問題)
可以使用@DateTimeFormat將客戶端發送過來的時間參數轉換成想要的類型
@DateTimeFormat(pattern=yyyy-MM-ddHH:mm:ss)
pattern定義需要轉換的格式(跟前面一樣。大小寫需要嚴格定義)
這樣
服務端就可以正確接收,打印的時間參數為
MonApr0116:26:25CST2025
注意:@JsonFormat與@DateTimeFormat只是定義時間參數在客戶端和服務端之間轉換格式,控制臺、Debug顯示的還是java.util.Date下的Date類型形式,如果想要轉換的話可以自己使用SimpleDateFormat
SimpleDateFormatsdf=newSimpleDateFormat(yyyy-MM-ddHH:mm:ss
一些特殊情況
如果使用pattern=yyyy-MM-dd接收上述客戶端的參數
@DateTimeFormat(pattern=yyyy-MM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 實操型執業護士考試備考試題及答案
- 藥師考試常見問題及試題及答案
- 2025年執業醫師考試聽說提升法試題及答案
- 2025年行政管理語文考試的全方位試題與答案
- 行政法學輔導材料試題及答案
- 行政管理發展趨勢與試題及答案講解
- 備考自考行政管理專科的試題與答案
- 2025年執業醫師考試試題及答案全解析
- 行政管理專科考前沖刺試題及答案
- 2025年執業醫師考試復習競爭策略試題及答案
- 國網北京市電力公司授權委托書(用電)
- 邊坡支護之錨桿施工技術ppt版(共35頁)
- 黃芩常見的病蟲害癥狀及防治措施
- 中小學教育懲戒規則(試行)全文解讀ppt課件
- 思政課社會實踐報告1500字6篇
- GB∕T 25119-2021 軌道交通 機車車輛電子裝置
- 電池PCBA規格書
- 機械零件加工驗收檢驗記錄(共2頁)
- 機械加工切削全參數推薦表
- 終端塔基礎預偏值(抬高值)計算表格
- 海外醫療服務委托合同協議書范本模板
評論
0/150
提交評論