Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何解析json天气响应_Json_Kotlin_Retrofit - Fatal编程技术网

如何解析json天气响应

如何解析json天气响应,json,kotlin,retrofit,Json,Kotlin,Retrofit,这是我对天气图api的回应 { "message": "accurate", "cod": "200", "count": 3, "list": [ { "id": 2641549, "name": "Newtonhill", "coord": { "lat": 57.0333, "lon": -2.15 },

这是我对天气图api的回应

      {
            "message": "accurate",
            "cod": "200",
"count": 3,
"list": [
    {
        "id": 2641549,
        "name": "Newtonhill",
        "coord": {
            "lat": 57.0333,
            "lon": -2.15
        },
        "main": {
            "temp": 275.15,
            "pressure": 1010,
            "humidity": 93,
            "temp_min": 275.15,
            "temp_max": 275.15
        },
        "dt": 1521204600,
        "wind": {
            "speed": 9.3,
            "deg": 120,
            "gust": 18
        },
        "sys": {
            "country": ""
        },
        "rain": null,
        "snow": null,
        "clouds": {
            "all": 75
        },
        "weather": [
            {
                "id": 311,
                "main": "Drizzle",
                "description": "rain and drizzle",
                "icon": "09d"
            }
        ]
    }
我是通过seriazable object的改装获得温度的,但我无法获得天气描述 我这样做是为了获得温度和国家 类天气响应{

     @SerializedName("sys")
     var sys: Sys? = null

    @SerializedName("main")
    var main: Main? = null

    @SerializedName("weather")
   var weather: Weather? = null
 }


class Main {
   @SerializedName("temp")
   var temp: Float = 0.0f

   }
我用回调函数调用我的主类 有趣的getCurrentData(){

val改装=改装.Builder()
.baseUrl(baseUrl)
.addConverterFactory(GsonConverterFactory.create())
.build()
val service=reformation.create(WeatherService::class.java)
val call=service.getCurrentWeatherData(lat、lon、AppId)
排队(对象:Callback{
覆盖fun onResponse(调用:调用,响应:响应){
if(response.code()==200){
val weatherResponse=响应。主体()!!
var temp=(weatherResponse.main!!.temp-273.toString().substring(0,3)+“摄氏度”
tmp.text=temp
}
}
覆盖失效时的乐趣(调用:调用,t:可丢弃){
}
})
}

这是用于JSON的POJO类。现在可以轻松解析它

WeatherResponse.kt

data class WeatherResponse(
    @SerializedName("cod")
    val cod: String? = null,
    @SerializedName("count")
    val count: Int? = null,
    @SerializedName("list")
    val list: List<X?>? = null,
    @SerializedName("message")
    val message: String? = null
) {
    data class X(
        @SerializedName("clouds")
        val clouds: Clouds? = null,
        @SerializedName("coord")
        val coord: Coord? = null,
        @SerializedName("dt")
        val dt: Int? = null,
        @SerializedName("id")
        val id: Int? = null,
        @SerializedName("main")
        val main: Main? = null,
        @SerializedName("name")
        val name: String? = null,
        @SerializedName("rain")
        val rain: Any? = null,
        @SerializedName("snow")
        val snow: Any? = null,
        @SerializedName("sys")
        val sys: Sys? = null,
        @SerializedName("weather")
        val weather: List<Weather?>? = null,
        @SerializedName("wind")
        val wind: Wind? = null
    )

    data class Clouds(
        @SerializedName("all")
        val all: Int?
    )

    data class Coord(
        @SerializedName("lat")
        val lat: Double? = null,
        @SerializedName("lon")
        val lon: Double? = null
    )

    data class Main(
        @SerializedName("humidity")
        val humidity: Int? = null,
        @SerializedName("pressure")
        val pressure: Int? = null,
        @SerializedName("temp")
        val temp: Double? = null,
        @SerializedName("temp_max")
        val tempMax: Double? = null,
        @SerializedName("temp_min")
        val tempMin: Double? = null
    )

    data class Sys(
        @SerializedName("country")
        val country: String?
    )

    data class Weather(
        @SerializedName("description")
        val description: String? = null,
        @SerializedName("icon")
        val icon: String? = null,
        @SerializedName("id")
        val id: Int? = null,
        @SerializedName("main")
        val main: String? = null
    )

    data class Wind(
        @SerializedName("deg")
        val deg: Int? = null,
        @SerializedName("gust")
        val gust: Int? = null,
        @SerializedName("speed")
        val speed: Double? = null
    )

}

请提供任何帮助。您可以添加一些错误吗
data class WeatherResponse(
    @SerializedName("cod")
    val cod: String? = null,
    @SerializedName("count")
    val count: Int? = null,
    @SerializedName("list")
    val list: List<X?>? = null,
    @SerializedName("message")
    val message: String? = null
) {
    data class X(
        @SerializedName("clouds")
        val clouds: Clouds? = null,
        @SerializedName("coord")
        val coord: Coord? = null,
        @SerializedName("dt")
        val dt: Int? = null,
        @SerializedName("id")
        val id: Int? = null,
        @SerializedName("main")
        val main: Main? = null,
        @SerializedName("name")
        val name: String? = null,
        @SerializedName("rain")
        val rain: Any? = null,
        @SerializedName("snow")
        val snow: Any? = null,
        @SerializedName("sys")
        val sys: Sys? = null,
        @SerializedName("weather")
        val weather: List<Weather?>? = null,
        @SerializedName("wind")
        val wind: Wind? = null
    )

    data class Clouds(
        @SerializedName("all")
        val all: Int?
    )

    data class Coord(
        @SerializedName("lat")
        val lat: Double? = null,
        @SerializedName("lon")
        val lon: Double? = null
    )

    data class Main(
        @SerializedName("humidity")
        val humidity: Int? = null,
        @SerializedName("pressure")
        val pressure: Int? = null,
        @SerializedName("temp")
        val temp: Double? = null,
        @SerializedName("temp_max")
        val tempMax: Double? = null,
        @SerializedName("temp_min")
        val tempMin: Double? = null
    )

    data class Sys(
        @SerializedName("country")
        val country: String?
    )

    data class Weather(
        @SerializedName("description")
        val description: String? = null,
        @SerializedName("icon")
        val icon: String? = null,
        @SerializedName("id")
        val id: Int? = null,
        @SerializedName("main")
        val main: String? = null
    )

    data class Wind(
        @SerializedName("deg")
        val deg: Int? = null,
        @SerializedName("gust")
        val gust: Int? = null,
        @SerializedName("speed")
        val speed: Double? = null
    )

}
var description = weatherResponse.list?.get(0)?.weather?.get(0)?.description