Jackson Ignora els camps nuls

Jackson Ignora els camps nuls

En aquesta secció, entendrem com podem ignorar els camps nuls en el moment de serialitzar una classe Java utilitzant Jackson.

Podem ignorar els camps nuls a nivell de classe, camp o globalment. Anem a entendre cadascun d'ells un per un.

Ignoreu els camps nuls a nivell de classe

Per ignorar els camps nuls a nivell de classe, fem servir el @JsonInclude anotació amb inclou.NON_NULL . Prenguem un exemple per entendre com podem utilitzar l'anotació @JsonInclude per ignorar els camps nuls a nivell de classe.

IgnoreNullFieldExample1.java

 //import required classes and package if any import java.io.IOException; import java.util.Scanner; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; //create class IgnoreNullFieldExample1 to understand how we can ignore the null field on marshalling public class IgnoreNullFieldExample1 { //main() methods start public static void main(String args[]) { // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create Scanner class object Scanner sc= new Scanner(System.in); // using try-catch try { College colg; String name, university, street, state, city, rank; System.out.println('Enter College Name:'); name = sc.nextLine(); System.out.println('Enter University Name:'); university = sc.nextLine(); System.out.println('Enter Street:'); street = sc.nextLine(); System.out.println('Enter City:'); city = sc.nextLine(); System.out.println('Enter State:'); state = sc.nextLine(); System.out.println('Enter College Rank:'); rank = sc.nextLine(); // set values to College object by using constructor colg = new College(name, university, new Address(street, state, null), null); // serialize College using mapper String jsonString = mapper .writerWithDefaultPrettyPrinter() .writeValueAsString(colg); System.out.println(jsonString); } catch (IOException e) { e.printStackTrace(); } //close Scanner class object sc.close(); } } //create class College by using @JsonInclude(JsonInclude.Include.NON_NULL) @JsonInclude(JsonInclude.Include.NON_NULL) class College { //Creating properties of College class public String name; public String university; public Address address; public String rank; // constructor College(String name, String university, Address address, String rank){ this.name = name; this.university = university; this.address = address; this.rank = rank; } } //create class Address @JsonInclude(JsonInclude.Include.NON_NULL) class Address { public String street; public String state; public String city; Address(String street, String state, String city){ this.street = street; this.state = state; this.city = city; } }  

Sortida:

Jackson Ignora els camps nuls

Ignora un camp nul específic

Aquí, fem servir @JsonInclude anotació amb inclou.NON_NULL a nivell de camp per ignorar un camp nul específic. Prenguem un exemple per entendre com podem utilitzar l'anotació @JsonInclude per ignorar un camp nul específic.

IgnoreNullFieldExample2.java

 //import required classes and package if any import java.io.IOException; import java.util.Scanner; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; //create class IgnoreNullFieldExample2 to understand how we can ignore specific null fields on marshalling public class IgnoreNullFieldExample2 { //main() methods start public static void main(String args[]) { // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create Scanner class object Scanner sc= new Scanner(System.in); // using try-catch try { College colg; String name, university, street, state, city, rank; System.out.println('Enter College Name:'); name = sc.nextLine(); System.out.println('Enter University Name:'); university = sc.nextLine(); System.out.println('Enter Street:'); street = sc.nextLine(); System.out.println('Enter City:'); city = sc.nextLine(); System.out.println('Enter State:'); state = sc.nextLine(); System.out.println('Enter College Rank:'); rank = sc.nextLine(); // set values to College object by using constructor colg = new College(name, university, new Address(street, state, city), null); // serialize College using mapper String jsonString = mapper .writerWithDefaultPrettyPrinter() .writeValueAsString(colg); System.out.println(jsonString); } catch (IOException e) { e.printStackTrace(); } //close Scanner class object sc.close(); } } //create class College by using @JsonInclude(JsonInclude.Include.NON_NULL) class College { //Creating properties of College class public String name; public String university; public Address address; @JsonInclude(JsonInclude.Include.NON_NULL) public String rank; // constructor College(String name, String university, Address address, String rank){ this.name = name; this.university = university; this.address = address; this.rank = rank; } } //create class Address class Address { public String street; public String state; public String city; Address(String street, String state, String city){ this.street = street; this.state = state; this.city = city; } }  

Sortida:

Jackson Ignora els camps nuls

Ignoreu els camps nuls globalment

Aquí, utilitzem JsonInclude.Include.NON_NULL a la classe ObjectMapper per configurar el comportament d'ignorar els camps nuls a nivell global. Fem servir el setSerializationInclusion() mètode amb Inclou.NON_NULL de la manera següent:

 mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)  

Prenguem un exemple per entendre com podem ignorar els camps nuls a nivell global mitjançant l'ús el setSerializationInclusion() mètode.

IgnoreNullFieldExample3.java

 //import required classes and package if any import java.io.IOException; import java.util.Scanner; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.ObjectMapper; //create class IgnoreNullFieldExample3 to understand how we can ignore null fields globally public class IgnoreNullFieldExample3 { //main() methods start public static void main(String args[]) { // create an instance of ObjectMapper class ObjectMapper mapper = new ObjectMapper(); // create Scanner class object Scanner sc= new Scanner(System.in); // using try-catch try { College colg; String name, university, street, state, city, rank; System.out.println('Enter College Name:'); name = sc.nextLine(); System.out.println('Enter University Name:'); university = sc.nextLine(); System.out.println('Enter Street:'); street = sc.nextLine(); System.out.println('Enter City:'); city = sc.nextLine(); System.out.println('Enter State:'); state = sc.nextLine(); System.out.println('Enter College Rank:'); rank = sc.nextLine(); // set values to College object by using constructor colg = new College(name, university, new Address(street, state, null), null); // serialize College using mapper String jsonString = mapper .setSerializationInclusion(JsonInclude.Include.NON_NULL) .writerWithDefaultPrettyPrinter() .writeValueAsString(colg); System.out.println(jsonString); } catch (IOException e) { e.printStackTrace(); } //close Scanner class object sc.close(); } } //create class College class College { //Creating properties of College class public String name; public String university; public Address address; public String rank; // constructor College(String name, String university, Address address, String rank){ this.name = name; this.university = university; this.address = address; this.rank = rank; } } //create class Address class Address { public String street; public String state; public String city; Address(String street, String state, String city){ this.street = street; this.state = state; this.city = city; } }  

Sortida:

Jackson Ignora els camps nuls

Tots els mètodes anteriors s'utilitzen per ignorar camps nuls, on cada mètode s'utilitza en casos diferents.