2012-05-22 3 views
0

나는 서버가 데이터베이스 식별자에 대한 간단한 래퍼 클래스 인 EntityId 클래스를 가지고있다. 클래스에는 이미 문자열 표현으로 변환하거나 변환하는 메소드가 있습니다. 내 JSON 웹 리소스에 EntityId의 문자열 표현을 사용하고 싶습니다.잭슨에서 가장 간단한 사용자 지정 직렬화?

Jackson에서이 간단한 유형에 대해 사용자 지정 serialization을 구현하는 가장 간단한 방법은 무엇입니까? 나는 커스텀 시리얼 라이저와 디시리얼라이저를 작성할 수 있지만, 더 간단한 해결책이 있는지 궁금해했다.

감사합니다. 문자열과 같은 형식을 직렬화하는 방법이 있다면

답변

1

, 당신은과 같이 @JsonValue 주석을 추가 할 수 있습니다

public class MyClass { 
    @JsonValue public String toString() { return "xxx"; } 
} 

반대로, 소요 단일 인수 생성자가있는 경우 String, int 또는 long (또는 잭슨이 JSON 스칼라 유형으로 변환 할 수있는 몇 가지 자바 타입), 그 생성자에 다음 @JsonCreator 주석을 추가 할 수 있습니다

public class MyClass { 
    @JsonCreator 
    public MyClass(OtherPojo value) { // or use 'Map<String,Object>', extract data 
     // ... 
    } 
} 
+0

그래, 그게해야한다. 고마워요! – HolySamosa

+0

또 하나의 추가 -'@JsonValue'는 Strings뿐만 아니라 Jackson-serializable 가능한 모든 리턴 타입에서 작동합니다. – StaxMan

관련 문제