對象的Android項目,我創建從一個XSD文件中提取類,看起來像這樣GSON JSON與定製FieldNamingPolicy
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "LoginUserResponse1Document", propOrder = {
"lgnUsrRspn"
})
public class LoginUserResponse1Document {
@XmlElement(name = "LgnUsrRspn", required = true)
protected LoginUserResponseV01 lgnUsrRspn;
/**
* Gets the value of the lgnUsrRspn property.
*
* @return
* possible object is
* {@link LoginUserResponseV01 }
*
*/
public LoginUserResponseV01 getLgnUsrRspn() {
return lgnUsrRspn;
}
/**
* Sets the value of the lgnUsrRspn property.
*
* @param value
* allowed object is
* {@link LoginUserResponseV01 }
*
*/
public void setLgnUsrRspn(LoginUserResponseV01 value) {
this.lgnUsrRspn = value;
}
}
的API IM與工作使用中出現的@XmlElement(name = "LgnUsrRspn", required = true)
例如在名稱請求之一,我得到JSON的響應,看起來像這樣:
{
"LgnUsrRspn": {
"Hdr": {
"XchgId": "7403AC2E976D46968F6B4839E2FCB7A6",
"DtTm": "2017-04-05T09:20:47.593+0000",
"NxtFlow": "LOG"
},
"LgnUsr": {
"Rslt": {
"RsltStts": "DECL",
"RsltRsn": ""
}
}
}
}
我也有這個類來處理JSON轉換
public class JsonBuilder {
private JsonBuilder(){
}
public static String toJson(Object pojo){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
Gson gson = gsonBuilder.create();
return gson.toJson(pojo);
}
public static Object fromJson(String json, Class type){
GsonBuilder gsonBuilder = new GsonBuilder();
gsonBuilder.setFieldNamingPolicy(FieldNamingPolicy.UPPER_CAMEL_CASE);
Gson gson = gsonBuilder.create();
return gson.fromJson(json, type);
}
}
我的問題是,如果有一種方法,我可以創建自定義FieldNamingPolicy與GsonBuilder使用,或一種方法,我可以用我在@XmlElement(name = "LgnUsrRspn", required = true)
名
爲什麼不能用GSON的'@SerializedName(「LgnUsrRspn」)''等其他註釋來標註字段? –