我有一个像这样的物体
@EqualsAndHashCode
@Builder
@NoArgsConstructor
@Getter
@Setter
@AllArgsConstructor
public class CreateBookingDto implements Serializable {
@JsonFormat(pattern="yyyy-MM-dd")
private LocalDate date;
@JsonFormat(pattern="HH:mm:ss")
private LocalTime startTime;
}
我试图把它Map成一个字符串得到的字符串是这样的
"{
"date":
{"year":2021,"month":"JANUARY","dayOfWeek":"SATURDAY","era":"CE","chronology":{"id":"ISO","calendarType":"iso8601"},"dayOfYear":16,"leapYear":false,"monthValue":1,"dayOfMonth":16},
"startTime":
{"hour":16,"minute":33,"second":13,"nano":721065000}}"
如何将它们Map到格式为“yyyy-mm-dd”(表示日期)和“HH:mm:ss”(表示时间)的字符串
如何Map对象
def objectMapper = new ObjectMapper()
def requestBodyJson = new ObjectMapper().writeValueAsString(dtoObject)
我的pom
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>2.12.1</version>
<type>pom</type>
</dependency>
2条答案
按热度按时间tuwxkamq1#
您需要将
JavaTimeModule
注册到您的ObjectMapper
,这将为java.time
包中的类安装一系列JSON序列化器/反序列化器。(And顺便说一句:在第2行中,使用第1行中的
ObjectMapper
,而不是创建新的ObjectMapper
。)那么JSON输出将如下所示:
vpfxa7rd2#
如果您不希望在项目中添加额外的依赖项,可以自己创建序列化器。
并创建序列化程序: