這個問題在這里已經有了答案: 使用 Jackson JSON 映射器序列化/反序列化 java 8 java.time (22 個回答) Java 8 LocalDate Jackson 格式 (17 個回答) 20 小時前關閉。
如何在 Java 中正確地將 dto 轉換為 json?我像下面這樣使用ObjectMapper:
ObjectDto dto;
byte[] json = new byte[0];
dto = service.getDto(someId);
ObjectMapper mapper = new ObjectMapper();
json = mapper.writeValueAsBytes(dto);
問題出在格式date欄位中。在 Dto 中,我的日期采用這種格式:2021-09-27T12:06:27.990Z但是在將此 dto 以位元組為單位轉換為 json 后,我看到我date的被拆分為具有許多屬性的物件,如下所示:
"date":{
"year":2021,
"month":"OCTOBER",
"nano":528000000,
"monthValue":10,
"dayOfMonth":25,
"hour":13,
"minute":14,
"second":58,
"dayOfYear":298,
"dayOfWeek":"MONDAY",
"chronology":{
"id":"ISO",
"calendarType":"iso8601"
}
},
我想,在使用與轉換之前相同的格式ObjectMapper擁有所有屬性Dto之后。這該怎么做?
謝謝你的幫助!
uj5u.com熱心網友回復:
您應該注冊一個自定義序列化程式
public class ItemSerializer extends StdSerializer<Item> {
....
}
ObjectMapper mapper = new ObjectMapper();
SimpleModule module = new SimpleModule();
module.addSerializer(Item.class, new ItemSerializer());
mapper.registerModule(module);
在此處查看完整說明:https : //www.baeldung.com/jackson-custom-serialization
uj5u.com熱心網友回復:
在 DTO 中將日期的資料型別用作字串。它會解決問題
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/336794.html
上一篇:如何替換物件內的所有事件?
