在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裏字段名不匹配的情況了。