У меня есть JSON, который выглядит как этотКак десериализации JSON, используя GSON с общим базовым классом
{
user:{
name:abc
email:[email protected]
.....
}
responseCode:1
responseMessage:Done
}
Я использую Дооснащение 2 с GSON конвертора. 2 параметра responseCode и responseMessage появляются в каждом JSON. Дифференцируя параметр «пользователь»
Так что я создал класс
class BaseResponse {
public int responseCode;
public String responseMessage;
}
Тогда остальные Pojos продлить что-то вроде этого:
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 возвращает мне объект User с элементами всех элементов пользователя.
Я как бы исправимо. В любом случае это возможно? Либо я получаю материал класса child, делая JsonObject jo = json.getAsJsonObject().getAsJsonObject("user");
, либо родительский. Любая помощь будет оценена по достоинству.
так я я попробовал. Мне пришлось сделать «User extend UserResponse», иначе он не работал. В любом случае, спасибо! – Uday