2016-09-13 14 views
3

私はSpring MVCの3アプリケーションでJSONを返すようにしようとしたが、午前そのジャクソンは

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"]) 
私は、このためのカスタム・シリアライザを必要とするかもしれないように見えます

ジョダDateTimeFormatterで失敗ジョダてDateTimeFormatterをシリアル化するために失敗した、しかし、私どこから始めるべきかわからない。

+0

あなたは[これを見てとっています](http://stackoverflow.com/a/3272244/3594214)post – 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; 
}