關於Gson解析關鍵字處理問題

json字符串已經佔據了數據傳輸的重要地位,我們難免要解析各種各樣的json字符串,今天我在解析時就遇到了這個問題,當我們解析的字符串中帶有關鍵字的字段,這種情況該字段是無法生成類的字段的,好在谷歌給我們提供了比較好的解決方法,就是使用@SerializedName(“”)註解。用法如下

@SerializedName註解的作用:定義屬性序列化後的名稱

//當我們直接定義如下字段時系統是報錯的,因爲abstract是java關鍵字
private String abstract;   //報錯
//當我們加上如下註解時,JSON字符串中的abstract字段就對應了該類中newAbstract字段
@SerializedName("abstract")
private String newAbstract;

除了@SerializedName,谷歌還提供了其他註解,具體如下

@Expose註解的作用:區分實體中不想被序列化的屬性,其自身包含兩個屬性deserialize(反序列化)和serialize(序列化),默認都爲true。

使用 new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();創建Gson對象,沒有@Expose註釋的屬性將不會被序列化.。

private class User{
      private int id;
      @Expose
      private String name;
      .......

}

這樣create() gson對象序列化user,只會有name這一個屬性

另外想要不序列化某個屬性,也可以使用transient。

private class User{
      private int id;
      private transient String name;
      .......

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章