安卓。如何在 JsonArray 中解析 JsonArrays

测试测试

我使用改造和json。我需要解析这样的json:

{
"outer_array": [
"one" : [{}, {}],
"two" : [{}],
"three" : [{}],
....
]
}

这是我的代码的一部分:

@SerializedName("outer_array") var data: List<List<Data>>

但是如何通过键解析“outer_array”数组的每个元素。“outer_array”内的数组可以是从 0 到 n。也许我应该使用 TypeAdapter。但我不知道如何将其应用于这种情况,请帮助我

阿明

您提供的 JSON 无效。您可以在JSONLint上检查它我想它应该是一个数组(没有"one" :)或一个对象([在outer_array前面应该是{)在第一种情况下你的代码很好,在第二种情况下你可以使用Map(如HashMap),如果你需要转换它映射到数组你可以使用这样的东西

data class MyClass(
    @SerializedName("outer_array") var data: HashMap<String, List<Data>>
){
    val dataAsArray get() = data.map{ it.value }
}

但是,如果您必须解析此无效数据(例如,您无法要求提供者/后端解决此问题),即使是 TypeAdapter 也无济于事,因为 JSON 无效并且您将面临异常,您可以使用正则表达式将 invalid 替换[ ]{ }(但这太愚蠢了,尝试说服后端开发人员修复 json :D)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章