0
serialization 중에 @JsonProperty
에 지정된 속성 이름을 재정의하려고 시도하지만 결과 json에서 이전 및 새 명명 된 속성을 모두 가져옵니다.잭슨의 사용자 지정 명명 전략 및 @JsonProperty
법인 :
class Bean {
@JsonProperty("p")
String prop;
@JsonCreator
Bean(@JsonProperty("p") String prop) {
this.prop = prop;
}
}
직렬화 코드 :에
ObjectMapper mapper = new ObjectMapper();
mapper.setPropertyNamingStrategy(new PropertyNamingStrategy() {
@Override
public String nameForField(MapperConfig<?> config, AnnotatedField field, String defaultName) {
return "prop";
}
});
System.out.println(mapper.writeValueAsString(new Bean("test")));
결과 : 생성자 매개 변수도 @JsonProperty
주석이 때문에 잭슨의 코드에 Accrding
{"p":"test","prop":"test"}
이 발생합니다. 잭슨 1.9.5를 사용하고 있습니다.
생성자 매개 변수를 비활성화하고 {"prop":"test"}
을 얻을 수있는 방법이 있습니까? 미리 도움을 주셔서 감사합니다!
왜 모든 것을 혼합하고 있습니까? 'value' 속성없이'@ JsonProperty'를 필드 위에두면됩니다. 필드가'prop'라고 불리는 경우, 직렬화되는 방법입니다. –
"혼합"은 올바른 단어가 아닙니다. 나는'@ JsonProperty' 클래스를 가지고 있으며, 기본 이름 지정 전략이 아닌 또 다른'ObjectMapper'를 만들고 싶습니다. – catdog