Moshi и Retrofit не могут анализировать простые JSON - PullRequest
1 голос
/ 26 мая 2020

Я пытаюсь разобрать это JSON:

{
"random number1":
   {AT=
      {av=-54.697, ct=320206.0, mn=-92.47, mx=0.495},
      First_UTC=2020-05-17T14:54:38Z
   },
"random number2":
   {AT=
      {av=-54.6437, ct=3204306.0, mn=-92.47, mx=0.495},
      First_UTC=2020-05-17T14:54:43Z
   }
}

Я сделал простой класс адаптера для этого

 @FromJson
 fun fromJson(json: Map<String, Any>): OuterData {
    var count = 0
    var moshi = Moshi.Builder()
               .add(KotlinJsonAdapterFactory())
               .build()
    var adapter = moshi.adapter<InnerData>(InnerData().javaClass)

    json.entries.forEach {
            OuterData.innerData[count++] = adapter.fromJson(test)!!
        }
}
class InnerData() {
   var AT = DataDetail()
   var First_UTC = ""
}

Он правильно перебирает каждый случайный number "и все внутренние объекты выглядят правильно, но по какой-то причине я всегда получаю ошибку Use JsonReader.setLenient(true) to accept malformed JSON at path $.. Похоже, что кавычки по какой-то причине удаляются из JSON, и это может вызвать проблему. Если я использую свой внутренний класс данных напрямую

...