Gson - Serileştirmeden alanlar hariç tutuluyor

Varsayılan olarak GSON, geçici ve statik alanları serileştirme / seriyi kaldırma işleminin dışında bırakır. Aşağıdaki örneğe bir göz atalım.

Misal

Adlı bir Java sınıf dosyası oluşturun GsonTester C: \> GSON_WORKSPACE içinde.

File − GsonTester.java

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder;  

public class GsonTester { 
   public static void main(String args[]) { 
   
      GsonBuilder builder = new GsonBuilder();     
      Gson gson = builder.create();  
      
      Student student = new Student(); 
      student.setRollNo(1); 
      student.setName("Mahesh Kumar"); 
      student.setVerified(true); 
      student.setId(1); 
      student.className = "VI";  
      
      String jsonString = gson.toJson(student); 
      System.out.println(jsonString);    
   }      
} 

class Student { 
   private int rollNo; 
   private String name; 
   private boolean verified;  
   private transient int id; 
   public static String className;  
   
   public int getRollNo() {
      return rollNo; 
   }  
   
   public void setRollNo(int rollNo) { 
      this.rollNo = rollNo; 
   } 
   
   public String getName() { 
      return name; 
   } 
   
   public void setName(String name) { 
      this.name = name; 
   }  
   
   public void setVerified(boolean verified) { 
      this.verified = verified; 
   }  
   
   public boolean isVerified() { 
      return verified; 
   }  
   
   public int getId() { 
      return id; 
   } 
   
   public void setId(int id) { 
      this.id = id; 
   } 
}

Sonucu doğrulayın

Kullanarak sınıfları derleyin javac aşağıdaki gibi derleyici -

C:\GSON_WORKSPACE>javac GsonTester.java

Şimdi çalıştırın GsonTester sonucu görmek için -

C:\GSON_WORKSPACE>java GsonTester

Çıkışı doğrulayın

{"rollNo":1,"name":"Mahesh Kumar","verified":true}

ExcludeFieldsWithModifiers kullanma

GsonBuilder, serileştirme / seriyi kaldırma işleminden excludeFieldsWithModifiers () yöntemini kullanarak belirli değiştiriciye sahip alanları dışlama üzerinde kontrol sağlar. Aşağıdaki örneğe bakın.

Misal

C: \> GSON_WORKSPACE konumunda GsonTester adlı bir Java sınıf dosyası oluşturun.

File − GsonTester.java

import java.lang.reflect.Modifier; 

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder;  

public class GsonTester { 
   public static void main(String args[]) { 
   
      GsonBuilder builder = new GsonBuilder(); 
      builder.excludeFieldsWithModifiers(Modifier.TRANSIENT);    
      Gson gson = builder.create();  
      
      Student student = new Student(); 
      student.setRollNo(1); 
      student.setName("Mahesh Kumar"); 
      student.setVerified(true); 
      student.setId(1); 
      student.className = "VI";  
      
      String jsonString = gson.toJson(student); 
      System.out.println(jsonString);    
   }      
} 

class Student { 
   private int rollNo; 
   private String name;
   private boolean verified;  
   private transient int id; 
   public static String className;  
   
   public int getRollNo() { 
      return rollNo; 
   }  
   
   public void setRollNo(int rollNo) { 
      this.rollNo = rollNo; 
   }  
   
   public String getName() { 
      return name; 
   }  
   
   public void setName(String name) { 
      this.name = name; 
   }  
   
   public void setVerified(boolean verified) { 
      this.verified = verified; 
   }  
   
   public boolean isVerified() { 
      return verified; 
   } 
   
   public int getId() { 
      return id; 
   } 
   
   public void setId(int id) { 
      this.id = id; 
   } 
}

Sonucu doğrulayın

Kullanarak sınıfları derleyin javac aşağıdaki gibi derleyici -

C:\GSON_WORKSPACE>javac GsonTester.java

Şimdi çalıştırın GsonTester sonucu görmek için -

C:\GSON_WORKSPACE>java GsonTester

Çıkışı doğrulayın

{"rollNo":1,"name":"Mahesh Kumar","verified":true,"className":"VI"}

@Expose Ek Açıklama kullanma

Gson sağlar @Exposekapsamına göre bir sınıfın Json serileştirmesini / serisini kaldırmasını kontrol etmek için ek açıklama. Bir değişkene sahip aşağıdaki sınıfı düşünün@Exposedestek. Bu sınıftaname ve rollnodeğişkenler serileştirme için açığa çıkacaktır. Sonra kullandıkGsonBuilder.excludeFieldsWithoutExposeAnnotation()Yalnızca maruz kalan değişkenlerin serileştirileceğini / serileştirilmesinin kaldırılacağını gösteren yöntem Aşağıdaki örneğe bakın.

Misal

Adlı bir Java sınıf dosyası oluşturun GsonTester C: \> GSON_WORKSPACE içinde.

File − GsonTester.java

import com.google.gson.Gson; 
import com.google.gson.GsonBuilder; 
import com.google.gson.annotations.Expose;  

public class GsonTester { 
   public static void main(String args[]) { 
   
      GsonBuilder builder = new GsonBuilder();     
      builder.excludeFieldsWithoutExposeAnnotation(); 
      Gson gson = builder.create();  
      
      Student student = new Student(); 
      student.setRollNo(1); 
      student.setName("Mahesh Kumar"); 
      student.setVerified(true); 
      student.setId(1); 
      student.className = "VI"; 
      
      String jsonString = gson.toJson(student); 
      System.out.println(jsonString);    
   }      
} 
class Student { 
   @Expose 
   private int rollNo; 
   
   @Expose 
   private String name; 
   private boolean verified;  
   private int id; 
   public static String className;  
   
   public int getRollNo() { 
      return rollNo; 
   }  
   public void setRollNo(int rollNo) { 
      this.rollNo = rollNo; 
   }  
   public String getName() { 
      return name; 
   }  
   public void setName(String name) { 
      this.name = name; 
   }  
   public void setVerified(boolean verified) { 
      this.verified = verified; 
   }  
   public boolean isVerified() { 
      return verified; 
   }  
   public int getId() { 
      return id; 
   }  
   public void setId(int id) { 
      this.id = id; 
   } 
}

Sonucu doğrulayın

Kullanarak sınıfları derleyin javac aşağıdaki gibi derleyici -

C:\GSON_WORKSPACE>javac GsonTester.java

Şimdi çalıştırın GsonTester sonucu görmek için -

C:\GSON_WORKSPACE>java GsonTester

Çıkışı doğrulayın

{"rollNo":1,"name":"Mahesh Kumar"}