我试图将json解析成kotlin对象,但问题是它的关键字段是数字,我不知道如何解析它们,我尝试了序列化的name,但仍然面临问题。
json响应如下所示:
{
"Id": [{
"1": {
"name": "name1",
"class": "11a"
}
},
{
"2": {
"name": "name2",
"class": "11b"
}
}
]
}我使用的是gson,我要做的主要事情是将这个数字字段存储为一些其他的string对象。
发布于 2020-04-19 19:19:50
您可以将它们解析为一个映射列表,然后将它们“映射”到您的数据类:
val input = """{
"Id": [{
"1": {
"name": "name1",
"class": "11a"
}
},
{
"2": {
"name": "name2",
"class": "11b"
}
}
]
}"""
val gson = Gson()
val parsed: Map<String, List<Map<String, Any>>> =
gson.fromJson(input, (object : TypeToken<Map<String, List<Map<String, Any>>>>(){}).type)
println(parsed["Id"]?.get(0)?.get("1")) // {name=name1, class=11a}不过,它会有一些讨厌的通用签名。
如果你正在使用Kotlin,看看Klaxon,它会改善你的体验。
https://stackoverflow.com/questions/61302252
复制相似问题