将 volley 字符串响应 (List<List<Int>>) 转换为 Kotlin 列表

问题描述

我坚持可能有一个简单的解决方案。

我有一个列表的字符串表示,如下所示:

"[[1,2,3],[4,5,6]]"

换句话说,一个包含 3 个整数的 2 个列表的列表

Kotlin 中如何将字符串转换为 List 的列表对象?

解决方法

您可以使用 kotlinx.serialization 反序列化 JSON!

作为独立的 Kotlin 脚本:

@file:DependsOn("org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.0")

import kotlinx.serialization.decodeFromString
import kotlinx.serialization.json.Json

val s = "[[1,2,3],[4,5,6]]"
val j = Json.decodeFromString<List<List<Int>>>(s)

println(j)         // [[1,6]]
println(j[0][0])   // 1

在 Android 应用程序的 build.gradle 中,您需要这些行而不是 @file:DependsOn

dependencies {
    implementation 'org.jetbrains.kotlinx:kotlinx-serialization-json:1.2.0'
}

apply plugin: 'kotlinx-serialization'