【问题标题】:Android Klaxon library: I can't handle a complex json responseAndroid Klaxon 库:我无法处理复杂的 json 响应
【发布时间】:2020-12-23 02:59:48
【问题描述】:

我在 android studio 中收到这样的 json 响应:

{
  "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
                }]
            }
        }
}

我想得到一些参数,比如aqi。我使用 Klaxon 库尝试了很多不同的方法,但都没有结果。

【问题讨论】:

    标签: android json object httpresponse klaxon


    【解决方案1】:

    在 kotlin 中,您可以为复杂的 JSON 创建数据类,例如 -

    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>
    }
    

    并将它与 klaxon 一起使用 -

    val result = Klaxon().parse<MyData<Data<Time, City>>>(a)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-28
      • 2020-04-18
      • 1970-01-01
      • 1970-01-01
      • 2015-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多