Я знаком с синтаксическим анализом базовых данных JSON с помощью Retrofit, но борюсь с реализацией правильных объектов POJO для этого ответа JSON.
Вот данные JSON:
{
"observations": [
{
"id": "0",
"type": "1st type",
"data": [
{
"name": "some_name",
"result": "some_result"
}
]
},
{
"id": "1",
"type": "2nd type",
"data": [
{
"name2": "some_name2",
"measurement": "some_measurement",
"field": "some_field",
"result2": "some_result2"
}
]
}
]
}
У меня естьСозданные классы для обоих типов наблюдения:
public class DataType1{
@SerializedName("name")
@Expose
private String name;
@SerializedName("measurement")
@Expose
private String measurement;
@SerializedName("field")
@Expose
private String field;
@SerializedName("result")
@Expose
private String result;
}
public class DataType2 {
@SerializedName("name")
@Expose
private String name;
@SerializedName("result")
@Expose
private String result;
}
Общая идея, что по "типу" я определяю тип данных и отправляю их в соответствующий класс:
if(response.body().getType.equals("1st type"))
{
Gson gson = new GsonBuilder().create();
DataType1 data = gson.fromJson(response.body().getObservation, DataType1.class);
}
Я предполагаю, что следующийМне нужно создать отдельный класс ObservationsResponce, чтобы получить список наблюдений:
public class Observation {
@SerializedName("id")
@Expose
private String id;
@SerializedName("type")
@Expose
private String type;
@SerializedName("observation")
@Expose
private List<??What Should Be Here??> observation = null;
}
Но проблема в том, что наблюдения могут иметь разные типы данных и столь разные поля внутри.В таком случае каким классом должен быть этот список?