2016-04-05 40 views
1

JPA ve Jodatime ile Spring Boot kullanıyorum.joda'nın serialize dizisi LocalTime

@Type(type="org.jadira.usertype.dateandtime.joda.PersistentLocalTime") 
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm") 
private LocalTime startTime; 

tefrika JSON haline geliyor:

{ 
"startTime" : { 
     "hourOfDay" : 12, 
     "minuteOfHour" : 0, 
     "secondOfMinute" : 0, 
     "millisOfSecond" : 0, 
     "chronology" : { 
     "zone" : { 
      "fixed" : true, 
      "id" : "UTC" 
     } 
     } 
} 

Ben bu özellik seri hale getirmek için bir yol olup olmadığını bilmek istiyorum anda

böyle açıklamalı bir örnek niteliği var

{ 
    "startTime": "12:00" 
} 

o @JsonFormat açıklama, b koymak için çalıştık: böyle olması ut işe yaramıyor.

+0

Olası kopyalar [Jackson JSON işlemcili ve Joda DateTime seri hale getirilmeye nasıl?] (Http://stackoverflow.com/questions/3269459/how-to-serialize-joda-datetime-with-jackson-json- processer) – Savior

cevap

3

Sen gibi bir şey yapabileceğini:

@JsonSerialize(using = MyLocalTimeSerializer.class) 
private LocalTime startTime; 

ve sonra MyLocalTimeSerializer.class oluşturun:

public class MyLocalTimeSerializer extends JsonSerializer<LocalTime> { 

    @Override 
    public void serialize(
      LocalTime time, 
      JsonGenerator gen, 
      SerializerProvider arg2) throws IOException, JsonProcessingException { 
     gen.writeString(time.toString("HH:mm")); 
    } 

} 

Bu jackson-databind kütüphane gerektirir.

<dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>${jackson.databind-version}</version> 
    </dependency> 
ait
+0

Bu işe yaradı, teşekkürler! – inafalcao

+0

, JsonSerializer 'u uzatmamalı mı? – kandan

+0

@kandan Yup! Tamir edeceğim! –