Вы можете легко привести динамическую пару ключ-значение с помощью Map
Создайте класс модели следующим образом:
class Response {
private String id;
..
private final Map<String, String> dynamicValues = new HashMap<>();
public void addDynamicValues(String key, String value) {
dynamicValues.put(key, value).
}
....\\ getter setter for methods
}
В вашем случае я бы предложил просто получить ответв Map, а затем цикл и получить значение известных / неизвестных ключей.Есть еще один способ создать свой собственный JsonMapper для соответствующего отображения.Но эти большие усилия не будут полезны, если это только для одного API.
@GET("getResponse/")
Call<Map<String, Object>> getResponse();
Теперь выполните с Retrofit
if(response.isSuccessful()) {
Response apiResponse = new Response();
Map<String, Object> responseBody = response.body();
for (Map.Entry<String, Object> entry : responseBody.entrySet()) {
System.out.println("Key = " + entry.getKey() +
", Value = " + entry.getValue());
if(entry.getKey().equals("_id")) {
apiResponse.setId((String) responseBody.get("_id");
} else if (entry.getKey().equals("name")) {
apiResponse.setName((String) responseBody.get("name");
} else if (entry.getKey().equals("name")){
apiResponse.setPaths(responseBody.get("paths");
} else {
apiResponse.addDynamicValues(entry.getKey(), entry.getValue());
}
}
} else {
System.out.println(response.errorBody());
}