Итак, я новичок в kotlin и только что перенес мой код из java в kotlin. У меня есть класс данных HistoryList, который используется для анализа ответа от API.
data class HistoryList(
@SerializedName("code")
@Expose
var code: String = "",
@SerializedName("historyByDate")
@Expose
var histories : List<List<History>>
)
но когда я попытался разобрать истории и получить доступ ко второму списку, например histories[0][0]
. возврат был приведен к com.google.gson.internal.LinkedTreeMap
. Я пытался исследовать класс данных и пытался декомпилировать его в Java, вот что я получаю.
public final class HistoryList {
@SerializedName("code")
@Expose
@NotNull
private String code;
@SerializedName("historyByDate")
@Expose
@NotNull
private List histories;
}
как вы заметили, истории в декомпилированном коде стали списком, и я предполагаю, что это должно быть
List<List<Histories>> histories;
Может ли кто-нибудь объяснить мне:
- как декомпилированный класс стал таким
-Почему histories[0][0]
приводится к com.google.gson.internal.LinkedTreeMap
.
-как правильно разобрать класс данных
Кстати, прежде чем использовать этот класс данных, он работал хорошо, когда я все еще использовал его в Java. Доступ к histories[0][0]
вернул экземпляр History
UPDATE
Я забыл включить разбор json. Спасибо, что указали на это Алексею Сошину.
{
"code": "success",
"historyByDate": [
[
{
"charge": 73728,
"action": "DATA"
},
{
"charge": 105472,
"action": "DATA"
},
{
"charge": 14336,
"action": "DATA"
},
{
"charge": 101376,
"action": "DATA"
},
{
"charge": 0,
"action": "DATA"
},
{
"charge": 15360,
"action": "DATA"
},
{
"charge": 18432,
"action": "DATA"
},
{
"charge": 1060864,
"action": "DATA"
},
{
"charge": 700416,
"action": "DATA"
},
{
"charge": 7168,
"action": "DATA"
},
{
"charge": 0,
"action": "DATA"
}
],
[
{
"charge": 0,
"action": "DATA"
},
{
"charge": 0,
"action": "DATA"
}
],
[
{
"charge": 0,
"action": "DATA"
},
{
"charge": 0,
"action": "DATA"
}
]
]
}