You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Volley返回的List<List<Int>>格式字符串响应转换为Kotlin列表对象

字符串转嵌套整数列表实现方案

你通过Volley拿到的"[[1, 2, 3], [4, 5, 6]]"是完全符合JSON格式的嵌套数组字符串,完全不需要手写逐字符切割、正则匹配的解析逻辑,用成熟的JSON工具就能零成本完成转换,以下是两种可直接落地的实现方式:

方案一:使用Kotlin官方序列化库kotlinx.serialization

这是Kotlin生态下类型安全最高、代码最简洁的实现,不会出现隐式类型转换异常。

  • 提前在项目中引入kotlinx-serialization-json依赖即可
  • 解析核心代码仅需一行:
val rawResponse = "[[1, 2, 3], [4, 5, 6]]"
val convertedResult: List<List<Int>> = Json.decodeFromString(rawResponse)

提示:因为List<List<Int>>本身就是天然支持序列化的类型,不需要额外编写自定义的解析规则,工具会自动匹配嵌套结构完成转换。

方案二:使用Android内置的org.json工具

如果是Android项目,不需要额外引入第三方依赖,依靠系统自带的org.json库就能完成解析:

val rawResponse = "[[1, 2, 3], [4, 5, 6]]"
val outerJsonArray = JSONArray(rawResponse)
val finalList = mutableListOf<List<Int>>()
// 遍历外层嵌套结构
for (outerIndex in 0 until outerJsonArray.length()) {
    val innerJsonArray = outerJsonArray.getJSONArray(outerIndex)
    val innerIntList = mutableListOf<Int>()
    // 遍历内层数组取出整数
    for (innerIndex in 0 until innerJsonArray.length()) {
        innerIntList.add(innerJsonArray.getInt(innerIndex))
    }
    finalList.add(innerIntList)
}

避坑提醒:不要尝试手写字符串拆分逻辑(比如直接按括号、逗号拆分原始字符串),如果后续接口返回的内容包含带空格的数值、负整数、空数组等边界情况,手写拆分逻辑非常容易出现解析错误,维护成本极高。

内容的提问来源于stack exchange,提问作者Trude

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 21:06:01