я получаю ответ, который он мог бы быть один из двухGson массив синтаксического анализа
"data": [
{
"uuid": ".......",
"error": true,
"code": 142,
"text": "Invalid uuid"
}
]
или
"data": {
"download_url": "http://....."
}
для того, чтобы разобрать его в моем приложении я получить его с дооснащением как объект
public class downloadFileResponse extends generalStatusResponse {
Object data;
public Object getData() {
return data;
}
}
и попытаться разобрать его, как это
if (response.getStatus().getCode().equals("136")) {
String res = new Gson().toJson(response.getData());
try {
JSONObject t = new JSONObject(res);
Log.v("this", "r- " + t.getString("download_url"));
} catch (Exception e) {
}
} else {
try {
List<downloadFileDataErrorFields> error = new Gson().fromJson(response.getData().toString(), new TypeToken<List<downloadFileDataErrorFields>>() { }.getType());
} catch (Exception e) {
e.printStackTrace();
}
}
и мой объект downloadFileDataErrorFields это
public class downloadFileDataErrorFields {
String uuid;
String error;
String code;
String text;
public downloadFileDataErrorFields() {
}
public String getUuid() {
return uuid;
}
public String getError() {
return error;
}
public String getCode() {
return code;
}
public String getText() {
return text;
}
}
второй ответ только с DOWNLOAD_URL он работает нормально, но когда я пытаюсь разобрать первый с ошибками я получаю это
Caused by: com.google.gson.stream.MalformedJsonException: Unterminated object at line 1 column 87 path $[0].text
в этом столбце есть пробел в строке «Invalid uuid».
Кто-нибудь знает, как это исправить? или правильно проанализировать различные типы ответов?
Спасибо
Первый JSON не является действительным. –