Я пытаюсь проанализировать объект с помощью gson, когда он не равен нулю. Для начала, я просто вставил строковую константу для каждого поля объекта, когда пытаюсь выполнить синтаксический анализ, код не показывает ошибку иэто не продолжается
вот часть кода, отличная от этой:
мой объект - CurrentErrorList (он может быть нулевым или пустым), объявленный в другом классе, например:
@JsonAdapter(EmptyStringAsEmptyErrorTypeAdapter.class)
@SerializedName("CurrentErrorList")
CurrentErrorList currentErrorList;
Объявление объекта:
public class CurrentErrorList {
@SerializedName(value = "Error")
private Error error;
...
}
Объявление класса ошибки:
public class Error {
@SerializedName(value = "ErrorHexCode")
private String errorHexCode;
@SerializedName(value = "ErrorName")
private String errorName;
@SerializedName(value = "ErrorDescription")
private String errorDescription;
}
, а значение EmptyStringAsEmptyErrorTypeAdapter равно:
public class EmptyStringAsEmptyErrorTypeAdapter extends TypeAdapter<CurrentErrorList> {
@Override
public void write(JsonWriter out, CurrentErrorList value) throws IOException {
out.beginObject();
out.name("CurrentErrorList");
out.value(value.getError().getErrorName());
out.value(value.getError().getErrorHexCode());
out.value(value.getError().getErrorDescription());
out.endObject();
}
@Override
public CurrentErrorList read(JsonReader in) throws IOException {
CurrentErrorList result = new CurrentErrorList();
result.setError(new Error());
result.getError().setErrorName("");
if (in.peek() == JsonToken.BEGIN_OBJECT) {
result.getError().setErrorName("ErrorName");
result.getError().setErrorName("ErrorDescription");
result.getError().setErrorName("ErrorHexCode");
} else {
in.nextString();
return null;
}
return result;
}
}