Kotlin中json的Map数据显示错误值

aiazj4mn  于 2022-11-16  发布在  Kotlin
关注(0)|答案(1)|浏览(87)

我需要在我的Kotlin示例应用程序中显示此data
我已经使用莫希创建了所有合适的模型,可以在here中找到。
但是值显示错误。即使非空值也显示为空。
示例json,0索引中的值:

"main": {
        "temp": 25.78,
        "feels_like": 25.95,
        "temp_min": 23.35,
        "temp_max": 25.78,
        "pressure": 1014,
        "sea_level": 1014,
        "grnd_level": 1012,
        "humidity": 59,
        "temp_kf": 2.43
      },

模特负责人:

@Parcelize
@JsonClass(generateAdapter = true)
data class Main(

    @Json(name = "temp")
    val temp: Double?,
    @Json(name = "feels_like")
    val feelsLike: Double?,
    @Json(name = "temp_min")
    val tempMin: Double?,
    @Json(name = "temp_max")
    val tempMax: Double?,
    @Json(name = "pressure")
    val pressure: Double?,
    @Json(name = "sea_level")
    val seaLevel: Double?,
    @Json(name = "grnd_level")
    val grndLevel: Double?,
    @Json(name = "humidity")
    val humidity: Double?,
    @Json(name = "temp_kf")
    val tempKf: Double?,

) : Parcelable {

    fun getTempString(): String {
        return temp.toString().substringBefore(".") + "°"
    }

    fun getHumidityString(): String {
        return humidity.toString() + "°"
    }

    fun getTempMinString(): String {
        return tempMin.toString().substringBefore(".") + "°"
    }

    fun getTempMaxString(): String {
        return tempMax.toString().substringBefore(".") + "°"
    }
}

但当我打印主索引时在0处显示:

Main(temp=298.26, feelsLike=null, tempMin=null, tempMax=null, pressure=1014.0, seaLevel=null, grndLevel=null, humidity=62.0, tempKf=null)

因此,视图也不起作用。
完整的源代码可以在here中找到。

mrwjdhj3

mrwjdhj31#

请参阅讨论here,可能是以下注解@field:Json(name = "temp_min")代替@Json(name = "temp_min"),其他成员也一样,可以修复它。或者,您可以尝试使用不同版本的莫希。同样,请参阅相关讨论Moshi @Json annotation not working for com.github.kittinunf.fuel.moshi.moshiDeserializerOf?

相关问题