34

I have the following json file:


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

But the java model is as follows:


public class Segment {

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

    // getter and setters here...
}

When Jackson is parsing it raises an exception becuase there is no getter or setter for the field "externalId". It there a decorator that can be used to ignore a json field?

tzulberti
  • 666
  • 2
  • 6
  • 19

2 Answers2

70

You can use annotation @JsonIgnoreProperties; if it's just one value you want to skip, something like:

@JsonIgnoreProperties({"externalId"})

or to ignore anything that can't be used:

@JsonIgnoreProperties(ignoreUnknown=true)

There are other ways to do it too, for rest check out FasterXML Jackson wiki.

Tomasz Nurkiewicz
  • 334,321
  • 69
  • 703
  • 674
StaxMan
  • 113,358
  • 34
  • 211
  • 239
2

Also we can use mapper.enable(DeserializationFeature.FAIL_ON_IGNORED_PROPERTIES); instead @JsonIgnoreProperties(ignoreUnknown=true)

but for particular property we can use

@JsonIgnoreProperties({"externalId"})
public class Segment {

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

    // getter and setters here...
}
SamDJava
  • 267
  • 3
  • 13