בסעיף זה, נבין כיצד אנו יכולים להתעלם משדות ה-null בזמן הסדרת מחלקה Java באמצעות ג'קסון.
אנו יכולים להתעלם משדות null ברמת המחלקה, ברמת השדה או באופן גלובלי. בואו נבין כל אחד מהם אחד אחד.
התעלם משדות null ברמת הכיתה
על מנת להתעלם משדות null ברמת המחלקה, אנו משתמשים ב- @JsonInclude ביאור עם include.NON_NULL . ניקח דוגמה כדי להבין כיצד אנו יכולים להשתמש בביאור @JsonInclude כדי להתעלם משדות null ברמת המחלקה.
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; } }
תְפוּקָה:
התעלם משדה null ספציפי
הנה, אנחנו משתמשים @JsonInclude ביאור עם include.NON_NULL ברמת השדה כדי להתעלם משדה null ספציפי. ניקח דוגמה כדי להבין כיצד אנו יכולים להשתמש בביאור @JsonInclude כדי להתעלם משדה null ספציפי.
IgnoreNullFieldExample2.java
שיטת tostring
//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; } }
תְפוּקָה:
התעלם משדות null ברחבי העולם
כאן, אנו משתמשים ב-JsonInclude.Include.NON_NULL במחלקה ObjectMapper כדי להגדיר את ההתנהגות של התעלמות משדות null באופן גלובלי. אנו משתמשים ב- setSerializationInclusion() שיטה עם Include.NON_NULL בצורה הבאה:
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL)
בואו ניקח דוגמה כדי להבין כיצד אנו יכולים להתעלם משדות null באופן גלובלי על ידי שימוש setSerializationInclusion() שיטה.
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; } }
תְפוּקָה:
כל השיטות לעיל משמשות להתעלמות משדות null, כאשר כל שיטה משמשת במקרים שונים.