Я использую модифицированную эффективную сетевую библиотеку, но я не могу обрабатывать динамический JSON, который содержит один префикс, responseMessage
который меняется на object
случайный, тот же префикс ( responseMessage
) в некоторых случаях изменяется на String (динамически).
Формат Json Объект responseMessage:
{
"applicationType":"1",
"responseMessage":{
"surname":"Jhon",
"forename":" taylor",
"dob":"17081990",
"refNo":"3394909238490F",
"result":"Received"
}
}
responseMessage
Формат Json динамически изменяется на строку типа:
{
"applicationType":"4",
"responseMessage":"Success"
}
Моя проблема в том, что, поскольку дооснащение имеет встроенный JSON
синтаксический анализ, я должен назначать один POJO для каждого запроса! но REST-API, к сожалению, построен на динамических JSON
ответах. Префикс будет изменяться от строки к объекту случайным образом как при успешном (...), так и при неудачном (...) методах!
void doTrackRef(Map<String, String> paramsref2) {
RestAdapter restAdapter = new RestAdapter.Builder().setEndpoint("http://192.168.100.44/RestDemo").build();
TrackerRefRequest userref = restAdapter.create(TrackerRefRequest.class);
userref.login(paramsref2,
new Callback<TrackerRefResponse>() {
@Override
public void success(
TrackerRefResponse trackdetailresponse,
Response response) {
Toast.makeText(TrackerActivity.this, "Success",
Toast.LENGTH_SHORT).show();
}
@Override
public void failure(RetrofitError retrofitError) {
Toast.makeText(TrackerActivity.this, "No internet",
Toast.LENGTH_SHORT).show();
}
});
}
Поджо:
public class TrackerRefResponse {
private String applicationType;
private String responseMessage; //String type
//private ResponseMessage responseMessage; //Object of type ResponseMessage
//Setters and Getters
}
В приведенном выше коде POJO TrackerRefResponse.java для префикса responseMessage задано значение строки или объекта типа responseMessage, поэтому мы можем создать POJO с переменной ref с тем же именем (основы java :)), поэтому я ищу такое же решение для динамической JSON
модификации в Retrofit. Я знаю, что это очень простая работа в обычных http-клиентах с асинхронной задачей, но это не лучшая практика при JSON
разборе REST-Api ! Всегда смотрю на производительность. Тесты производительности: Volley или Retrofit - лучший выбор, но мне не удалось справиться с динамикой JSON
!
Возможное решение я знаю
Используйте старую задачу asyc с синтаксическим анализом http-клиента. :(
Попробуйте убедить бэкэнд-разработчика RESTapi.
Создайте собственный клиент модернизации :)