Jackson 2.1.4를 사용하여 POJO를 JSON으로 직렬화하고 있지만 특정 필드를 직렬화하는 것을 무시하고 싶습니다. 나는 일시적으로 사용했지만 여전히 그 요소를 직렬화하고있다.왜 jackson이 일시적인 멤버도 serialize하는 이유는 무엇입니까?
public class TestElement {
int x;
private transient String y;
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public String getY() {
return y;
}
public void setY(String y) {
this.y = y;
}
}
나는 다음과 같은 직렬화 오전 : 나는 잭슨 특정 주석에 내 모델을 묶어하지 않는
이public static void main(String[] args) throws JsonProcessingException {
TestElement testElement = new TestElement();
testElement.setX(10);
testElement.setY("adasd");
ObjectMapper om = new ObjectMapper();
String serialized = om.writeValueAsString(testElement);
System.err.println(serialized);
}
@JsonIgnore
을 제안하지 마십시오. 그것은 과도 사용만으로 끝날 수 있습니까? 가시성 설정을위한 objectmapper에 API가 있습니까?
내가이 질문에서 언급했듯이, 나는 내 모델을 잭슨 특정 주석에 묶을 필요가없는 방법을 선호한다. 내가 이해할 수없는 한 가지는 왜 잭슨이 과도기적 인 멤버를 연재하는지 아닌가? Smart API 나 java serializer와 같은 다른 API는 그렇게하지 않습니다. 이것에 대한 어떤 생각? – Naman
원래의 답변을 업데이트하여 문제를 자세히 설명하고 해결 방법을 제공합니다. 도움이되기를 바랍니다. – Eugen
고마워, 나는 첫 번째 해결책을 찾고 있었다. 이제 모든 잭슨 특수 주석을 사용하지 않고도이 작업을 수행 할 수 있습니다. – Naman