java使用Jackson忽略JSON对象上的新字段
我正在使用Jackson JSON库将一些JSON对象转换为安卓应用程序上的POJO类。问题是,在发布应用程序时,JSON对象可能会更改并添加新字段,但当前添加一个简单的字符串字段时,JSON对象将收支平衡,可以安全地忽略该字段
有没有办法告诉Jackson忽略新添加的字段?(例如,POJO对象上不存在)?全球忽视将是一件好事
你可以在下面搜索框中键入要查询的问题!
我正在使用Jackson JSON库将一些JSON对象转换为安卓应用程序上的POJO类。问题是,在发布应用程序时,JSON对象可能会更改并添加新字段,但当前添加一个简单的字符串字段时,JSON对象将收支平衡,可以安全地忽略该字段
有没有办法告诉Jackson忽略新添加的字段?(例如,POJO对象上不存在)?全球忽视将是一件好事
# 1 楼答案
@JsonIgnoreProperties(ignoreUnknown = true)
对我来说效果很好。我有一个java应用程序,它运行在带有JDK1.7的tomcat上# 2 楼答案
可以通过两种方式实现:
标记POJO以忽略未知属性
如下所示配置序列化/反序列化POJO/json的ObjectMapper:
# 3 楼答案
Jackson提供了一个可以在类级别(JsonIgnoreProperties)上使用的注释
将以下内容添加到类的顶部(而不是到单个方法):
根据您使用的jackson版本,您必须在当前版本中使用不同的导入:
在旧版本中,它是:
# 4 楼答案
如果使用基于JSON响应的pojo类。如果json更改经常在pojo类级别声明:
如果要转换,请在objectMapper中添加以下内容:
这样代码就不会被破坏
# 5 楼答案
Jackson 2的最新完整答案
使用注释
参见杰克逊在线文档中的JsonIgnoreProperties
使用配置
没有注释那么烦人
参见杰克逊在线文档中的FAIL_ON_UNKNOWN_PROPERTIES
# 6 楼答案
除了已经提到的两种机制外,还有一种全局功能可用于抑制由未知(未映射)属性引起的所有故障:
这是在没有注释的情况下使用的默认值,可以作为方便的回退