Я использую эффективную сетевую библиотечную модернизацию, но мне не удалось обработать Dynamic 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();
}
});
}
Pojo:
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
в "Дооснащении".
Я знаю, что это очень простая работа в обычных http-клиентах с асинхронной задачей, но это не самая лучшая практика в анализе REST-Api JSON
! глядя на производительность Benchmarks, всегда Volley или Retrofit - лучший выбор, но я не справился с динамикой JSON
!
Возможное решение, которое я знаю
-
Используйте старую задачу asyc с разбором http-клиента.:(
-
Попробуйте убедить разработчика базы данных RESTapi.
-
Создать пользовательский клиент для переоснащения:)