java - Jackson @JsonProperty() 在用于注释私有字段时如何工作?
问题描述
具体来说,我想知道在反序列化对象时,反序列化器如何设置私有字段?考虑这样的示例类:
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-
但要小心使用;-)
推荐阅读
- jquery - $.get 后 Bootstrap 4 模态无法正常工作
- plsql - PLSQL - 选择中的比较运算符
- javascript - 带有 Graph API 的 Outlook Web 插件 - 转发/发送电子邮件时是否可以将当前项目作为附件包含在内?
- python - Vstack 获取数组
- javascript - 为什么浮点数的`a * b`和`a *= b`的结果不同
- selenium-webdriver - 没有 Selenium 和 Geckodriver 的 Firefox Marionette 命令
- java - 如何仅使用 maven 编译 GWT 项目
- sql - 选择值并按日期插入下一行
- angular - 使用滚动事件时的 ExpressionChangedAfterItHasBeenCheckedError
- microsoft-graph-api - 尝试使用 MS Graph API 时获取“MailboxNotEnabledForRESTAPI”