当前位置: 首页 > 面试题库 >

使用Jackson忽略JSON对象上的新字段

萧和平
2023-03-14
问题内容

我正在使用Jackson
JSON库将一些JSON对象转换为android应用程序上的POJO类。问题是,JSON对象可能会更改,并且在发布应用程序时会添加新字段,但是即使添加简单的String字段(即使可以安全地忽略),当前它也会中断。

有什么办法告诉杰克逊忽略新添加的字段?(例如,在POJO对象上不存在)?全局忽略将是巨大的。


问题答案:

Jackson提供了可以在类级别使用的注释(JsonIgnoreProperties)。

将以下内容添加到类的顶部( 而不是 单个方法):

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
    ...
}

根据所使用的杰克逊版本,您必须在当前版本中使用其他导入:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

在旧版本中,它是:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;


 类似资料:
  • 我使用jackson 2. x进行序列化和反序列化。我注册了对象映射器到后燃烧器模块,并配置对象映射器忽略未知属性 但是当它试图序列化一个对象时,它失败了,因为属性错误找到了未知的字段 java对象还带有@JsonIgnoreProperties注释(ignoreUnknown=true) 有人能帮我理解可能出了什么问题吗 下面是Util类 枚举类编号 甲级 我反序列化的代码如下所示 我试图反序列

  • 知道我做错了什么吗?如果重要的话,我将使用Jackson-core 2.1.1。

  • 我有一个问题。 然后在第二类中,即使我没有使用第二个字段,它仍然被添加为NULL。 我怎样才能避免这种情况呢?

  • 问题内容: 我使用的最后一个版本,此刻火力地堡的依赖,这是1.0.2的,我有问题,到让我的POJO的正确分析。 问题是,架构随时都可以更改,但我不希望我的应用程序崩溃: D / AndroidRuntime(14097):关闭VM W / dalvikvm(14097):threadid = 1:线程退出且未捕获到异常(group = 0x40a451f8)E / AndroidRuntime(1

  • 我正在用java中的jackson构建一个json体。它会像下面这样 基于不同的 REST URI,json 主体必须忽略某些字段或元素。如何使用杰克逊忽略上述 json 正文中的“学生”部分?当我忽略它时,我应该只能得到 但我得到它如下,这是不正确的- 我有两个带有getters和setters的类,一个作为主语,另一个作为学生。我尝试使用@JsonIgnore,但是它忽略了所有的URI,这是我