Những gì bạn cần là Mô-đun Jackson Joda. Nếu bạn nhập nó vào classpath của mình, bạn có thể thực hiện như sau trên trình liên kết của mình để viết nó làm Dấu thời gian mong muốn của bạn:
ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());
mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, true);
mapper.writeValueAsString(date);
Bạn có thể thay thế date
trong mẫu mã ở trên với POJO của bạn nếu cần.
Chỉnh sửa:Có vẻ như những gì bạn thực sự muốn là một bộ nối tiếp tùy chỉnh. Nó trông giống như thế này:
public class IsoDateSerializer extends JsonSerializer<DateTime> {
@Override
public void serialize(DateTime value, JsonGenerator jgen, SerializerProvider provider) {
String isoDate = ISODateTimeFormat.dateTime().print(value);
jgen.writeRaw("ISODATE(\"" + isoDate + "\")");
}
Sau đó, bạn sẽ đăng ký nó trên trình ánh xạ cho tất cả các loại DateTime
mapper.addSerializer(DateTime.class, new IsoDateSerializer());
hoặc chỉ định nó trên hàm bằng cách sử dụng chú thích
@JsonSerializer(using = IsoDateSerializer.class)
public DateTime createdTime;