在Android中解析Gson解析json數據是很方便快捷的,可以直接將json數據解析成java對象或者集合。
Gson解析json的方法我這里就不詳細說明了,網上一大把的例子,我這里主要說一下使用@SerializedName進行注解的情況。
使用Gson解析json成對象時默認的是將json里對應字段的值解析到java對象里對應字段的屬性里面。然后我們經常會遇到我們自己定義的java對象里的屬性名跟json里的字段名是不一樣的,這種情況怎么辦呢,這時我們就可以使用@SerializedName注解來將對象里的屬性跟json里字段對應值匹配起來。
下面說說具體使用方法:
我們有一段json數據如下:
- {
- "id":"1"
- "n":"zhangsan"
- "p":"123456"
- "s":"0"
- }
這是一個user的數據包括id、用戶名、密碼、性別,如果正常些一個user類來解析的話是這樣的:
- public class User{
- private String id;
- private String n;
- private String p;
- private String s;
- }
User類要這樣寫才能直接使用Gson直接解析出來,但是這樣的話User類的屬性命名就不太友好了,那我們要怎么做呢?Gson提供注解的方法來解決這個問題@SerializedName,使用方法如下:
- public class User{
- private String id;
- @SerializedName("n")
- private String userName;
- @SerializedName("p")
- private String password;
- @SerializedName("s")
- private String sex;
- }
這樣再使用Gson解析的時候就會將n對應的值賦值到userName屬性上,同樣的如果我們要將User生成json字符串使用Gson生成的時候也會將userName的名字生成n。這樣就解決了java對象里屬性名跟json里字段名不匹配的情況了。