1
我有一個JSON它看起來像這樣如何使用GSON與公共基類反序列化JSON
{
user:{
name:abc
email:[email protected]
.....
}
responseCode:1
responseMessage:Done
}
我使用改造2 GSON轉換器。 2參數 responseCode和responseMessage出現在每個JSON中。微分參數是「用戶」
所以我創建了一個類
class BaseResponse {
public int responseCode;
public String responseMessage;
}
然後POJO的其餘部分延伸是這樣的:
class User extends BaseResponse {
public String name;
public String email;
}
問題是,GSON不反序列化「用戶」部分。 我想我必須寫一個解串器。
return new JsonDeserializer<T>() {
@Override
public T deserialize(JsonElement json, Type typeOfT, JsonDeserializationContext context)
throws JsonParseException {
JsonObject jsonObject = json.getAsJsonObject();
int messageCode = jsonObject.get("responseCode").getAsInt();
if (messageCode == 1) {
**// What do I do now?**
}
return null;
}
};
問題是,GSON將用戶對象返回給我的用戶對象元素全爲空。
我是一種修復。無論如何,這是可能的嗎?我可以通過做JsonObject jo = json.getAsJsonObject().getAsJsonObject("user");
或父母來獲得孩子班級的材料。 任何幫助,將不勝感激。
所以你我試了一下。我不得不使'用戶擴展UserResponse',否則它不起作用。不管怎樣,謝謝! – Uday