2013-05-15 2 views
0

잭슨을 사용하여 사용자 정의 방식으로 클래스의 일부 필드를 직렬화하려고합니다. 그래서 나는 this.But에 대한 사용자 지정 serializer를 썼는데 내 문제는 custom serializer에서 필드의 이름을 가져올 수 없다는 것입니다. 내 POJO 클래스는jacson을 사용한 사용자 정의 필드 직렬화

public static class Foo { 
public String foo = "a"; 
@JsonSerialize(using = CustomSerializer.class) 
public String bar = "b"; 
@JsonSerialize(using = CustomSerializer.class) 
public String foobar = "c"; 
} 

입니다 그리고 내 사용자 정의 직렬화 클래스는 여기

public class CustomSerializer extends JsonSerializer<String> 
{ 
    @Override 
    public void serialize(String t, JsonGenerator jg, SerializerProvider sp) throws   IOException, JsonProcessingException 
    { 
     if(field.name.equals("a")) 
      //do this 
     else if(filed.name.equals("b")) 
      //do that 
    } 

}  

내가 연재되고있는 필드의 이름을 취득 할 수 있습니다. 어떻게 커스텀 시리얼 화기에서 필드 "a"와 "b"의 이름을 얻을 수 있습니까? 감사합니다.

답변

0

나는 이것이 가능하지 않다고 생각합니다. 그러나 각 속성에 대해 두 개의 별도의 serializer를 만들 수 있습니다. 나도 알아,이 작은 해결 방법,하지만 작동합니다.

+0

나는 그것을 생각했지만 그런 식으로 많은 필드를 직렬화해야하므로 그렇게 할 수없는 것처럼 보인다. 회신 해 주셔서 감사합니다. –