解析以数字为关键字段的json对象?
我试图将json解析为kotlin对象,但问题是它的关键字段是数字。如果不知道如何解析它们,我尝试了序列化名称,但仍然面临问题 json响应如下所示:解析以数字为关键字段的json对象?,json,kotlin,gson,Json,Kotlin,Gson,我试图将json解析为kotlin对象,但问题是它的关键字段是数字。如果不知道如何解析它们,我尝试了序列化名称,但仍然面临问题 json响应如下所示: { "Id": [{ "1": { "name": "name1", "class": "11a" } }, { "2": { "name"
{
"Id": [{
"1": {
"name": "name1",
"class": "11a"
}
},
{
"2": {
"name": "name2",
"class": "11b"
}
}
]
}
我正在使用gson,我尝试做的主要事情是将这些数字字段存储为一些其他字符串对象。您可以将它们解析为映射列表,然后将它们“映射”到您的数据类:
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}
val input=”“”{
“Id”:[{
"1": {
“名称”:“名称1”,
“类别”:“11a”
}
},
{
"2": {
“名称”:“名称2”,
“类别”:“11b”
}
}
]
}"""
val gson=gson()
已分析val:映射=
fromJson(输入,(对象:TypeToken(){}).type)
println(已解析[“Id”]?.get(0)?.get(“1”)/{name=name1,class=11a}
不过,它会有一些令人讨厌的通用签名
如果您正在与Kotlin合作,请查看,它将改善您的体验。您发布的内容无效。将其更改为有效的JSON,同时保留您的问题,因为它仍然是一个有效的问题。您提供的JSON中没有
countryitems
,因此我的示例可能与您的代码不一样。解析或获取值时是否出现错误?val parsed:Map=gson.fromJson(body,(object:TypeToken(){}).type)val parsed值:Map=parsed[“id”?.get(0)?.get(“1”)由于映射
这解决了我的问题,我通过将数据存储到另一个变量中来进一步映射数据。