{
"patients": {
"-Kx5vuRqItEF-7kAgVWy": {
"name": "name1",
"age": "27",
"graphData": {
"-K5knK9j8EfUHS7AesFw": {
"date": "16/12/2015",
"graphList": "[...]"
}
}
},
"-Kx5vuRqItEF-7kAgVWy": {
"name": "name1",
"age": "27",
"graphData": {
"-K5knK9j8EfUHS7AesFw": {
"date": "16/12/2015",
"graphList": "[...]"
},
"--K5knNeBFoLrjWnZshfL": {
"date": "12/12/2015",
"graphList": "[...]"
},
}
}
}
}
PatientView является объектом Java и содержит другой вложенный объект Graph.
public class PatientView {
private String name;
private String age;
private boolean gender;
private float height;
private String phone;
private Object bdate;
private String image;
private ArrayList<Graph> graphData;
public PatientView() {
}
}
Объект Graph: который имеет дату и объект ArrayList
public class Graph implements Serializable {
private Object graphDate;
private ArrayList<Double> graphList;
// Empty constructor needed for firebase
public Graph() {
}
public Graph(Object graphDate, ArrayList<Double> graphList) {
this.graphDate = graphDate;
this.graphList = graphList;
}
}
и чтение значений с помощью firebase addChildEventListen
public void onChildAdded(DataSnapshot dataSnapshot, String s) {
if (dataSnapshot != null && dataSnapshot.getValue() != null) {
PatientView p = dataSnapshot.getValue(PatientView.class);
patients.add(p);
patientIdsFromServer.add(dataSnapshot.getKey());
recyclerView.scrollToPosition(patients.size() - 1);
mAdapter.notifyItemInserted(patients.size() - 1);
}
}
но получаю ошибку вроде
Caused by: com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.util.ArrayList out of START_OBJECT token at [Source: java.io.StringReader@2ced7c6a; line: 1, column: 62] (through reference chain: com.iitb.openmrs.openmrsfinal.ui.Adapter.PatientView["graphData"])
Проблема заключается в том, что когда я отправляю данные в дочерний элемент graphData, его идентификаторы генерируются, поэтому схема не соответствует объекту Graph. Я искал, есть ли способ подавить идентификатор при чтении данных, но ничего не нашел.