我正在使用Jackson 2.1.4将一个POJO序列化为JSON,但是我希望忽略特定字段的序列化。我使用了transient关键字,但它仍在序列化该元素。
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
,因为我不想将我的模型与Jackson特定的注解绑定在一起。只使用transient能实现吗?ObjectMapper上是否有任何关于可见性设置的API?
om.disable(MapperFeature.AUTO_DETECT_GETTERS) om.disable(MapperFeature.AUTO_DETECT_IS_GETTERS) om.enable(MapperFeature.AUTO_DETECT_FIELDS)
- Eugen