Kotlin如何使用GSON解析动态JSON字段?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin如何使用GSON解析动态JSON字段?相关的知识,希望对你有一定的参考价值。
所以,我看了很多文章,但似乎无法找出问题的答案。问题是我从api中得到了一个像这样的json文件:
"forecast":
"2020-01-04":
"date": "2020-01-04",
"mintemp": 7,
"maxtemp": 11,
"avgtemp": 9,
"hourly":
...
问题是此json中的“键”始终是今天(2020-01-04)。我现在这样做的方式是这样的:
data class ForecastDaysContainer(
@SerializedName("2020-01-04")
var forecastday1: FutureWeatherEntry,
@SerializedName("2020-01-05")
val forecastday2: FutureWeatherEntry,
@SerializedName("2020-01-06")
val forecastday3: FutureWeatherEntry,
@SerializedName("2020-01-07")
val forecastday4: FutureWeatherEntry,
@SerializedName("2020-01-08")
val forecastday5: FutureWeatherEntry,
@SerializedName("2020-01-09")
val forecastday6: FutureWeatherEntry,
@SerializedName("2020-01-10")
val forecastday7: FutureWeatherEntry
)
但是,这当然使我每天手动更改日期。有什么办法可以将SerializedName设置为今天的日期?当我尝试LocalDate.now().toString()
我收到错误消息“注释参数必须是编译时常量”,但我似乎在kotlin中找不到合适的解决方案。非常感谢您的宝贵时间!
答案
Gson为此具有parse()
方法。
val key = "2020-01-04" // This is generated, probably?
val json = JsonParser().parse(jsonString)
val result = json.asJsonObject["forecast"].asJsonObject[key]
以上是关于Kotlin如何使用GSON解析动态JSON字段?的主要内容,如果未能解决你的问题,请参考以下文章
Gson 无法解析 Kotlin 中的字符串 json 格式数据
如何在 Android 的 Kotlin 中使用 GSON 将 JSON 对象转换为 JSON 数组
如何在 kotlin 中通过 GSON lib 解析 JSON 时管理 android 应用程序的空值