java - Jackson @JsonProperty() 用于注释私有(private)字段时如何工作?

标签 java json jackson deserialization

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

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

如果使用 objectMapper.readValue(json, MyClass.class); 将其反序列化,如果结果对象被标记为 private,如何设置该字段?

最佳答案

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

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

但要小心使用 ;-)

关于java - Jackson @JsonProperty() 用于注释私有(private)字段时如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63420195/

相关文章:

java - 辅助 Activity 的问题无法从 texView 获取数据(已解决 - Oleg Golomoz 回答)

java - 在 Android 中发送短信

java - 在java中的二维数组中添加一维数组

json - 如何使我的 Apex 类返回或 "run"JSON?使用 APEX REST

json - 如何在 .net core 3.0 中反序列化 json

java - Swagger 和 web.xml

java - 在 Java 中查找任意用户的主目录的最佳方法是什么?

java - Jackson ObjectMapper - 指定对象属性的序列化顺序

java - 如何更改从 JSON Schema 生成的 POJO 的格式?

java - JPA @过去日期/日历验证