Android中Gson解析json數據使用@SerializedName註解與java對象不匹配的字段

在Android中解析Gson解析json數據是很方便快捷的,可以直接將json數據解析成java對象或者集合。

使用Gson解析json成對象時默認的是將json裏對應字段的值解析到java對象裏對應字段的屬性裏面。然後我們經常會遇到我們自己定義的java對象裏的屬性名跟json裏的字段名是不一樣的,這種情況怎麼辦呢,這時我們就可以使用@SerializedName註解來將對象裏的屬性跟json裏字段對應值匹配起來。

比如說我有段json數據如下:

  {
  "id":"1"
 "n":"zhangsan"
"p":"123456"
  "s":"0"
 }

想要映射到我的javabean數據類裏面去

public  class User{

private String id;
private String name;
private String personNumber;
private String sex;
}

User類要這樣寫才能直接使用Gson直接解析出來,但是這樣的話User類的屬性命名就不太友好了,那我們要怎麼做呢?Gson提供註解的方法來解決這個問題@SerializedName,使用方法如下:

public  class  User{
 private  String id;
 @SerializedName("n")
private  String name;
@SerializedName("p")
private  String personNumber;
 @SerializedName("s")
private  String sex;
}

這樣再使用Gson解析的時候就會將n對應的值賦值到name屬性上,同樣的如果我們要將User生成json字符串使用Gson生成的時候也會將name的名字生成n。這樣就解決了java對象裏屬性名跟json裏字段名不匹配的情況了。

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