잭슨

2016-09-13 3 views
3

내 스프링 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"]) 
내가 이것에 대한 사용자 지정 serializer를해야 할 것 같습니다

Joda DateTimeFormatter에 대한 실패 Joda DateTimeFormatter를 직렬화하는 데 실패,하지만 난 어디서부터 시작해야할지 모르겠다.

+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; 
}