嗨,我是 kotlinx 序列化的新手,我正在使用 KMP,我的要求有点不同
我的数据类
@Serializable 数据类 Student(val name : String , val age : Int)
我的简单 JSON 将是“['Avinash', 22]”,
应该反序列化为 Student("Avinash", 22)
我无法反序列化它任何人都可以帮助我
嗨,我是 kotlinx 序列化的新手,我正在使用 KMP,我的要求有点不同
我的数据类
@Serializable 数据类 Student(val name : String , val age : Int)
我的简单 JSON 将是“['Avinash', 22]”,
应该反序列化为 Student("Avinash", 22)
我无法反序列化它任何人都可以帮助我
尽管诸如[Avinash, 22]
格式不正确的 Json 之类的输入,您仍然可以通过将其解析为 a 来使用它JsonElement
:
import kotlinx.serialization.json.*
data class Student(val name: String, val age: Int)
fun decode(stringData: String, parser: Json): List<Student> {
val element: JsonArray = parser.parseToJsonElement(stringData).jsonArray
return element.windowed(2, 2).map {
Student(
it[0].toString(),
it[1].toString().toInt()
)
}
}
fun main() {
val parser = Json { isLenient = true }
val students = decode("[A, 22, B, 33, C, 44]", parser)
println(students)
// [Student(name=A, age=22), Student(name=B, age=33), Student(name=C, age=44)]
}
尝试这个:
val student: Student = Json.decodeFromString("{\"name\": \"Avinash\", \"age\": \"22\"}")
注意如何格式化您的 JSON 字符串。
[]
方括号用于数组{}
花括号用于对象您必须提供字段名称,并为字段和值使用双引号,或者使用不太严格的Json
反序列化:
val json = Json {
isLenient = true
}
val student: Student = json.decodeFromString("{name: Avinash, age: 22}")
如果您想深入了解 json 架构,可以阅读此处。