Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Jackson: Ignore Json configuration value

Tags:

java

json

jackson

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?

like image 805
tzulberti Avatar asked Nov 12 '10 18:11

tzulberti


People also ask

How do I ignore a field in JSON response Jackson?

The Jackson @JsonIgnore annotation can be used to ignore a certain property or field of a Java object. The property can be ignored both when reading JSON into Java objects and when writing Java objects into JSON.

How do I ignore a JSON property?

To ignore individual properties, use the [JsonIgnore] attribute. You can specify conditional exclusion by setting the [JsonIgnore] attribute's Condition property. The JsonIgnoreCondition enum provides the following options: Always - The property is always ignored.

How do I ignore properties in Jackson?

Ignore All Fields by Type Finally, we can ignore all fields of a specified type, using the @JsonIgnoreType annotation. If we control the type, then we can annotate the class directly: @JsonIgnoreType public class SomeType { ... }

How do you tell Jackson to ignore a field during serialization?

If there are fields in Java objects that do not wish to be serialized, we can use the @JsonIgnore annotation in the Jackson library. The @JsonIgnore can be used at the field level, for ignoring fields during the serialization and deserialization.


2 Answers

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.

like image 98
StaxMan Avatar answered Sep 21 '22 05:09

StaxMan


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... } 
like image 43
SamDJava Avatar answered Sep 22 '22 05:09

SamDJava