public class ResultEntity implements Serializable {
@SerializedName("IsError")//設(shè)置這個(gè) 是因?yàn)榉?wù)器返回的字段叫這個(gè)名字芽死,但是這樣寫(xiě)違反我們自己的命名規(guī)則,所以加上這個(gè)注解
private int code;
@SerializedName("InfoMessage")
private String message;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
//T泛型芝囤,任意對(duì)象
public class ResultDataEntity<T> extends ResultEntity implements Serializable {
@SerializedName("ReturnData")
private T data;
public T getData() {
return data;
}
public void setData(T data) {
this.data = data;
}
//以下方法是專(zhuān)門(mén)用來(lái)轉(zhuǎn)換json to bean or bean to json
public static ResultDataEntity fromJson(String json, Class clazz) {
Gson gson = new Gson();
Type objectType = type(ResultDataEntity.class, clazz);
return gson.fromJson(json, objectType);
}
public String toJson(Class<T> clazz) {
Gson gson = new Gson();
Type objectType = type(ResultDataEntity.class, clazz);
return gson.toJson(this, objectType);
}
static ParameterizedType type(final Class raw, final Type... args) {
return new ParameterizedType() {
public Type getRawType() {
return raw;
}
public Type[] getActualTypeArguments() {
return args;
}
public Type getOwnerType() {
return null;
}
};
}
}
例子
{
"Code": 200,
"Message": "登錄成功似炎!",
"Data": {
"IDCardNum": "32098122226112495",
"MemberMobile": "123123444",
"MemberName": "楊x",
"Balance": 460,
"IsEnabled": 1,
"CreatedDate": "2016-12-09 19:43:22.187",
"LastLoginTime": "2016-12-09 19:43:22.187",
"LastLoginIP": "192.168.199.153",
}
}
如何進(jìn)行解析呢辛萍?Data 里面放的是一個(gè)用戶對(duì)象。那么首先我們要?jiǎng)?chuàng)建一個(gè)用戶類(lèi)羡藐。
public class UserEntity implements Serializable {
/**
* IDCardNum : 32098122226112495
* MemberMobile : 123123444
* MemberName : 楊x
* Balance : 460
* IsEnabled : 1
* CreatedDate : 2016-12-09 19:43:22.187
* LastLoginTime : 2016-12-09 19:43:22.187
* LastLoginIP : 192.168.199.153
*/
@SerializedName("IDCardNum")//可使用該注解 重命名
private String cardNum;
private String MemberMobile;
private String MemberName;
private int Balance;
private int IsEnabled;
private String CreatedDate;
private String LastLoginTime;
private String LastLoginIP;
//各種set get
如何解析呢贩毕?
String json ="";//就是服務(wù)器返回的數(shù)據(jù)
ResultDataEntity<UserEntity> userResult =ResultDataEntity.fromJson(json ,UserEntity.class);
UserEntity userEntity =userResult .getData();//取得用戶對(duì)象,然后進(jìn)行各種操作
小記
如有更好的方式仆嗦,請(qǐng)給出建議辉阶,如有錯(cuò)誤請(qǐng)指出,謝謝