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

杰克逊:忽略Json配置值

柳景胜
2023-03-14
问题内容

我有以下json文件:

{
  "segments": {        
            "externalId": 123, 
            "name": "Tomas Zulberti", 
            "shouldInform": true, 
            "id": 4
   }
}

但是java模型如下:

public class Segment {

    private String id;
    private String name;
    private boolean shouldInform;

    // getter and setters here...
}

Jackson解析时会引发异常,因为“ externalId”字段没有getter或setter方法。有没有可以用来忽略json字段的装饰器?


问题答案:

您可以使用注释@JsonIgnoreProperties;如果这只是您要跳过的一个值,则类似于:

@JsonIgnoreProperties({"externalId"})

或忽略任何无法使用的东西:

@JsonIgnoreProperties(ignoreUnknown=true)

还有其他方法可以做到这一点,其余的请查看FasterXML Jackson
wiki



 类似资料:
  • 我如何告诉Jackson忽略JSON名称? 我有以下POJO: 当我有这样的东西: “ABCName”:“foo”,然后杰克逊没有认出它抛出错误。 它期望的是: “abcName”:“foo”。 代码: 输出:{"abcname":"Foo"} 然后我试着用@JsonProperty(“ABCName”)注释ABCName 在我注释并运行代码之后,我得到的是:{“ABCName”:“Foo”,“A

  • 我想使用Spring的RestTemplate plus Jackson来使用Web服务。我已经学习了几本教程,并且已经达到了创建DAO的目的。这是我获取所有域对象的方法: 但我的Web服务不会立即返回Station对象数组,而是以这种方式返回一个更具语义的表达式: 所以我的问题是,我不知道如何“告诉”RestTemplate在“stations”指示符之后立即解析对象列表,而不创建临时对象,这似

  • 我还在学习如何使用Jackson。。。 所以我有一个JSON对象,它的值有时是整数、长字符串或列表 值:整数 值:字符串 价值:列表 所以总的来说。。。 这是我的POJO模型 这是我的映射器代码 问题是,当我执行代码时,出现以下错误: 我很清楚,之所以会发生这种情况,是因为“value”可以包含三种不同类型中的一种,我如何使代码足够灵活以适应这些类型。。。我总是可以在其他方法中检测值是int、Li

  • 问题内容: 现在,首先,我已经在该站点上阅读了其他答案,以及有关杰克逊序列化的其他答案,但它们都提供了忽略字段的方法。但是,在Java中,不能为。 我正在尝试将Java对象转换为,但忽略任何字段。这适用于字符串,但最终会采用if 值(如果未初始化),因为not 不会被忽略。 谁能对此有所启发? 编辑:为澄清起见,我尝试使用该类作为数据类型,但导致转换为字符串以引发JsonProcessingExc

  • 我环顾四周,不认为这是其中任何一个的复制品: 在《野蝇》中使用杰克逊注释 杰克逊注释被忽略 野蝇和杰克逊@JsonIgnore注释 使用野蝇10并部署具有以下类的战争: 如果构造函数未被注释,我会在部署时看到该构造函数中引发的异常,但在向 REST 服务发出请求时,我看不到 方法中的异常。 我在实体上有一个注释,它不起作用,我使用的注释也不起作用 该类如下所示(包括导入,以验证我使用的是 com.

  • 有没有办法让Jackson序列化某个流对象(并在之后关闭)?这样地: 使现代化 澄清:我想流式传输内容,而不仅仅是将其序列化到单个String对象。