首页 > 解决方案 > Jackson @JsonProperty() 在用于注释私有字段时如何工作?

问题描述

具体来说,我想知道在反序列化对象时,反序列化器如何设置私有字段?考虑这样的示例类:

public class MyClass {
    @JsonProperty( "My String" );
    private String myString;
}

如果这是反序列objectMapper.readValue(json, MyClass.class);化的,如果结果对象被标记为,如何设置此字段private

标签: javajsonjacksondeserialization

解决方案


在通过反射读取或写入值之前调用 Field.setAccessible(true) 可以解决问题。

有关详细信息,请参阅相应的 javadoc:https ://docs.oracle.com/javase/8/docs/api/java/lang/reflect/AccessibleObject.html#setAccessible-boolean-

但要小心使用;-)


推荐阅读