У меня есть HashMap, который выглядит следующим образом:
{
"name": "George",
"weeks": [
{
"checked": true,
"days": [
{
"checked": true,
"exercises": [
{
"exercise": "Bench Press",
"sets": [
{
"weight": 300,
"reps": 20
},
{
"weight": 400,
"reps": 30
}
]
}
]
}
]
}
]
}
Поэтому я подумал, что могу передать его в конструктор класса следующим образом:
data class Gainer(val weeks: ArrayList<HashMap<String, ArrayList<HashMap<String, ArrayList<HashMap<String, ArrayList<HashMap<String, Long>>>>>>>>?, val name: String?) {
Однако яполучаю эту ошибку:
java.lang.RuntimeException: Could not deserialize object. Expected a List, but got a class java.lang.String (found in field 'weeks.[0].days.[0].exercises.[0].exercise')
Я предполагаю, что получаю эту ошибку, потому что когда я указываю Hashmap<String, ArrayList ...>
Он ожидает String
в качестве типа ключа и ArrayList
в качестве значениятип.Однако иногда я устанавливаю boolean
в качестве одного из значений и ArrayList
в качестве другого значения.Я не уверен, как указать несколько типов значений.
edit: То, что я передаю, на самом деле не является данными json, как показано.Технически это documentSnapshot.Я получаю это от Firestore.Извините, мне следовало пояснить это лучше.