0

I get a json response in android studio like this:

{
  "status": "ok",
  "data": {
        idx:7397,
        aqi:71,
        time:{
            v:1481396400,
            s:"2016-12-10 19:00:00",
            tz:"-06:00"
        },
        city:{
            name:"Chi_sp, Illinois",
            url:"https://aqicn.org/city/usa/illinois/chi_sp/",
            geo:["41.913600","-87.723900"]
        },
        iaqi:{
            pm25:{
                v:71
            }
        },
        forecast:{
            daily: {
                pm25: [{
                    avg: 154,
                    day: "2020-06-13",
                    max: 157,
                    min: 131
                }, {
                    avg: 163,
                    day: "2020-06-14",
                    max: 173,
                    min: 137
                }]
            }
        }
}

and I want to get some of the parameters like aqi. I have tried a lot of different approaches using the Klaxon library but none came to a result.

goku
  • 1

1 Answers1

1

In kotlin, you can create data classes for a complex JSON like -

class MyData<A>{
   lateinit var status: String
   var data : A? = null
}
class Data<B,C>{
   lateinit var idx: String
   lateinit var aqi: String
   var time: B?= null
   var city: C? = null
}
class Time{
   lateinit var v: String
   lateinit var s: String
   lateinit var tz: String
}
class City{
   lateinit var name: String
   lateinit var url: String
   lateinit var geo: List<String>
}

and use it with klaxon -

val result = Klaxon().parse<MyData<Data<Time, City>>>(a)
satya-p91
  • 478
  • 3
  • 12