2014-12-23 8 views
2

내가지도 속성 잭슨이 속성 Map<Long, String> map를 포함하는 클래스로,이 직렬화 복원과 같은Jackson은 단지 주석이있는 Map <Long, String>으로 deserialize 할 수 있습니까?

{"map":{"1":"value"}, ...} 

가 포함 된 JSON 문자열을 가지고, map.put(null,"1=value")을 할 것으로 보인다. 직렬화 중에 객체를 같은 형식으로 직렬화합니다.

잭슨이 주석으로지도에 올바르게 deserialize 할 수있는 방법이 있습니까? 아니면 사용자 지정 serializer를 만들어야할까요? 게터/세터와

예 개체 :

@JsonTypeInfo(use = JsonTypeInfo.Id.MINIMAL_CLASS, include = JsonTypeInfo.As.PROPERTY, property = "@class") 
public class exampleObject { 
    Map<Long, String> valueMap; 

    public Map<Long, String> getValueMap() { 
    return valueMap; 
    } 

    public void setValueMap(Map<Long, String> valueMap) { 
    this.valueMap = valueMap; 
    } 
} 
+1

는 [MCVE]을 제공하십시오 (http://stackoverflow.com/help/mcve). –

답변

0

이 시도 :

public class ExampleObject { 

    private Map<String, Long> valueMap; 

    @JsonCreator 
    public AccountTagVariableDescription(Map<String, Long> valueMap) { 
     this.valueMap = valueMap; 
    } 

    @JsonAnyGetter 
    public Map<String, Long> getValueMap() { 
     return valueMap; 
    } 
}