2016-09-13 31 views
3

我想在我的Spring MVC 3應用程序返回JSON,但其未能對喬達DateTimeFormatter傑克遜未能序列化喬達DateTimeFormatter

com.fasterxml.jackson.databind.JsonMappingException: No serializer found for class org.joda.time.format.DateTimeFormat$StyleFormatter and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)) (through reference chain: java.util.HashMap["personDay"]->mypackage.PersonDay["dateTimeFormatter"]->org.joda.time.format.DateTimeFormatter["parser"]) 

它看起來像我可能需要爲這個自定義序列化,但我我不知道從哪裏開始。

+0

您拍照時看看[此](http://stackoverflow.com/a/3272244/3594214)後 – chrisfahlin

回答

1

你可以看看here瞭解更多詳情和選項。

基本上,你需要創建一個Serializer,是這樣的:

public class ItemSerializer extends StdSerializer<Item> { 
    public ItemSerializer() { 
     this(null); 
    } 
    public ItemSerializer(Class<Item> t) { 
     super(t); 
    } 
    @Override 
    public void serialize(Item value, JsonGenerator jgen, SerializerProvider provider) 
    throws IOException, JsonProcessingException { 
     jgen.writeStartObject(); 
     jgen.writeNumberField("id", value.id); 
     jgen.writeStringField("itemName", value.itemName); 
     jgen.writeNumberField("owner", value.owner.id); 
     jgen.writeEndObject(); 
    } 
} 

然後你就可以用註釋類:@JsonSerialize,是這樣的:

@JsonSerialize(using = ItemSerializer.class) 
public class Item { 
    public int id; 
    public String itemName; 
    public User owner; 
}