解析以数字作为关键字段的 json 对象?
parsing json object with number as its key fields?
我正在尝试将 json 解析为 kotlin 对象,但问题是它的关键字段是数字,不知道如何解析它们,我已经尝试序列化名称但仍然面临问题。
json 响应如下所示:
{
"Id": [{
"1": {
"name": "name1",
"class": "11a"
}
},
{
"2": {
"name": "name2",
"class": "11b"
}
}
]
}
我正在使用 gson,我想做的主要事情是将这个数字字段存储为一些其他字符串对象。
您可以将它们解析为地图列表,然后 "map" 将它们解析为您的数据 类:
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,它将改善您的体验。
我正在尝试将 json 解析为 kotlin 对象,但问题是它的关键字段是数字,不知道如何解析它们,我已经尝试序列化名称但仍然面临问题。
json 响应如下所示:
{
"Id": [{
"1": {
"name": "name1",
"class": "11a"
}
},
{
"2": {
"name": "name2",
"class": "11b"
}
}
]
}
我正在使用 gson,我想做的主要事情是将这个数字字段存储为一些其他字符串对象。
您可以将它们解析为地图列表,然后 "map" 将它们解析为您的数据 类:
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,它将改善您的体验。