如何使用Gson将对象数组反序列化为Pojos列表

dtcbnfnu  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(162)

例如:POJO是

class Student(val name : String, val age : Int)

JSON字符串为

[["Avinash", 21], ["Sai", 23], ["pavan", 30]]

我想让gson将JSON反序列化为List<Student>,我尝试使用TypeToken,但它不起作用

s3fp2yjn

s3fp2yjn1#

谢谢你,绒毛,这对我很有效
数据类Student(瓦尔名称:字符串,瓦尔年龄:整数)
fun主文件夹(){

val json = "[['AVINASH' , 21] , ['Sai' , 23]]"
val type = object : TypeToken<List<Student>>() {}.type

val gsonBuilder = GsonBuilder()

gsonBuilder.registerTypeAdapter(Student::class.java, object : JsonDeserializer<Student> {
    override fun deserialize(json: JsonElement, p1: Type?, p2: JsonDeserializationContext?): Student {
        val studentArray = json.asJsonArray
        return Student(studentArray[0].asString , studentArray[1].asInt)
    }

})

var list: List<Student> = gsonBuilder.create().fromJson(json, type)

print(list)

}

相关问题