Как сделать класс POJO, когда в Retrofit так много разных ключей? - PullRequest
0 голосов
/ 11 марта 2020

У меня есть URL с большим количеством данных с некоторым значением скорости обмена.

{
  "update":1583931550455,

  "JPYINR":[0.70513,0.0073300004,1.0504443,0.6978,0.70545,0.6999,0.71],
  "CNYGBP":[0.11117,-0.0004400015,-0.3942312,0.11161,0.11142,0.11084,0.11175],
  "GBPUSD":[1.2944314,0.0062696934,0.48671137,1.2881618,1.2885933,1.2848021,1.2976564],

  ...
}

Я хочу создать класс POJO для получения ответа Retrofit, но проблема в том, что ... данные имеют разные ключи!

Более 100 ключей в этом URL.

Итак, я не могу записать все значения ключей в классе POJO. Я думаю, это неэффективно.

Ниже приведен мой класс POJO ..

класс данных Rate

data class Rate(
    var update: Long,
    var rate: Array<Double>
) 

Как видите,

свойство не может распознать правильное значение. На самом деле оно принимает нулевое значение.

(Конечно, свойство обновления занимает 1583931550455 из данных URL)

Как я могу решить эту проблему?

1 Ответ

0 голосов
/ 11 марта 2020

Это было какое-то время, но все же я уже пришел к выводу о том, что вам нужно.

data class Rate(
var update: Long,
val result: LinkedTreeMap<Double, Any>)

оказывается, что в ResponseTreeMapclass вам просто нужно было передать параметр типа второго класса как Any, и он может быть приведен ко всему, что вам нужно.

также я оставляю здесь хороший инструмент, который поможет вам сопоставить ваши json ответы в kotlin простых объектах / DTO:

https://app.quicktype.io/

...