解析以数字为关键字段的json对象?

解析以数字为关键字段的json对象?,json,kotlin,gson,Json,Kotlin,Gson,我试图将json解析为kotlin对象,但问题是它的关键字段是数字。如果不知道如何解析它们,我尝试了序列化名称,但仍然面临问题 json响应如下所示: { "Id": [{ "1": { "name": "name1", "class": "11a" } }, { "2": { "name"

我试图将json解析为kotlin对象,但问题是它的关键字段是数字。如果不知道如何解析它们,我尝试了序列化名称,但仍然面临问题

json响应如下所示:

{
    "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”)由于映射
这解决了我的问题,我通过将数据存储到另一个变量中来进一步映射数据。