在Android中使用Gson解析json中字段和bean字段名不一致時(shí)要使用@SerializedName("接收名")來設(shè)置接受名。
使用Gson解析json成對(duì)象時(shí)默認(rèn)的是將json里對(duì)應(yīng)字段的值解析到j(luò)ava對(duì)象里對(duì)應(yīng)字段的屬性里面哩照。然后我們經(jīng)常會(huì)遇到我們自己定義的java對(duì)象里的屬性名跟json里的字段名是不一樣的际乘,這種情況下号杏,我們就可以使用@SerializedName注解來將對(duì)象里的屬性跟json里字段對(duì)應(yīng)值匹配起來。
例如,我們有一段json數(shù)據(jù)如下:
{
????"id":"1"
????"n":"zhangsan"
}
這是一個(gè)user的數(shù)據(jù)包括id镊靴、用戶名铣卡,如果正常些一個(gè)user類來解析的話是這樣的:
public class User{
????private String id;
????private String n;
}
User類要這樣寫才能直接使用Gson直接解析出來,但是這樣的話User類的屬性命名就不太友好了偏竟,那我們要怎么做呢煮落?Gson提供注解的方法來解決這個(gè)問題@SerializedName,使用方法如下:
public class User{
????private String id;
????@SerializedName("n")
????private String userName;
}
這樣再使用Gson解析的時(shí)候就會(huì)將n對(duì)應(yīng)的值賦值到userName屬性上踊谋,同樣的如果我們要將User生成json字符串使用Gson生成的時(shí)候也會(huì)將userName的名字生成n蝉仇。這樣就解決了java對(duì)象里屬性名跟json里字段名不匹配的情況了。
版權(quán)聲明:本文為CSDN博主「Porsche520」的原創(chuàng)文章殖蚕,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明轿衔。
原文鏈接:https://blog.csdn.net/jiayi_yao/article/details/51057267