精品熟女碰碰人人a久久,多姿,欧美欧美a v日韩中文字幕,日本福利片秋霞国产午夜,欧美成人禁片在线观看

Gson 從序列化中排除字段

gson 從序列化中排除字段

默認情況下,gson 從序列化/反序列化過程中排除瞬態和靜態字段。我們來看看下面的例子。

1) 范例

在c:> gson_workspace中創建名為 gsontester 的java類文件。

文件: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;
   }
}

2) 驗證結果

使用 javac 編譯器編譯類如下 -

c:\gson_workspace>javac gsontester.java

現在運行 gsontester 查看結果 -

c:\gson_workspace>java gsontester

驗證輸出

{"rollno":1,"name":"mahesh kumar","verified":true}

 

1. 使用 excludefieldswithmodifiers

gsonbuilder使用來自序列化/反序列化過程的excludefieldswithmodifiers()方法控制使用特定修飾符排除字段。請參閱以下示例。

1) 范例

在c:> gson_workspace中創建名為gsontester的java類文件。

文件: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;
   }
}

2) 驗證結果

使用 javac 編譯器編譯類如下:

c:\gson_workspace>javac gsontester.java

現在運行 gsontester 查看結果:

c:\gson_workspace>java gsontester

驗證輸出

{"rollno":1,"name":"mahesh kumar","verified":true,"classname":"vi"}

 

2. 使用@expose annotation

gson提供 @expose 注釋來根據其范圍控制類的json序列化/反序列化。考慮以下具有 @expose 支持的變量的類。在此類中,將公開 name 和 rollno 變量以進行序列化。然后我們使用 gsonbuilder.excludefieldswithoutexposeannotation() 方法來指示只有序列化/反序列化的公開變量。請參閱以下示例。

1) 范例

在c:> gson_workspace中創建名為 gsontester 的java類文件。

文件: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;
   }
}

2) 驗證結果

使用 javac 編譯器編譯類如下 -

c:\gson_workspace>javac gsontester.java

現在運行 gsontester 查看結果 -

c:\gson_workspace>java gsontester

驗證輸出

{"rollno":1,"name":"mahesh kumar"}
相關文章