Kevin Learn Kotlin:数据解析(gson)

2021-12-17  本文已影响0人  Kevin_小飞象
14.jpg

gson

Gson 是 Google 开源的一个 JSON 库,被广泛应用在 Android 开发中。

在 app/build.gradle 中添加以下依赖:

implementation 'com.google.code.gson:gson:2.8.9'

将 JSON 和对象互相转换

/**
 * Created on 2021/12/16 14:30
 *
 * @author Gong Youqiang
 */
fun main(){
    // 将 JSON 转换为对象
    val json = "{\"uid\":\"00001\",\"userName\":\"Kevin\",\"password\":\"hkt123\",\"telNumber\":\"1388888888\"}"
    val gson = Gson()
    val account:Account = gson.fromJson<Account>(json,Account::class.java)
    println(account.toString())

    // 将对象转换为 json
    val accountJson = gson.toJson(account)
    println("ToJSON:${accountJson}")
}

class Account {
    var uid:String = ""
    var userName:String = "Kevin"
    var password:String = "hkt123"
    var telNumber:String = "13888888888"
    override fun toString(): String {
        return "Account(uid='$uid', userName='$userName', password='$password', telNumber='$telNumber')"
    }
}

将 JSON 和集合互相转换

/**
 * Created on 2021/12/16 14:30
 *
 * @author Gong Youqiang
 */
fun main(){
    // 将 JSON 转换为集合
    val jsonList = "[{\"uid\":\"00001\",\"userName\":\"Kevin\",\"password\":\"hkt123\",\"telNumber\":\"1388888888\"}]"
    val gson = Gson()
    val infos:List<Account> = gson.fromJson(jsonList,object :TypeToken<List<Account>>(){}.type)
    println("fromJson to list:${infos.size}")

    // 将集合转换为 JSON
    val json = gson.toJson(infos)
    println("list to Json:${json}")
}

class Account {
    var uid:String = ""
    var userName:String = "Kevin"
    var password:String = "hkt123"
    var telNumber:String = "13888888888"
    override fun toString(): String {
        return "Account(uid='$uid', userName='$userName', password='$password', telNumber='$telNumber')"
    }
}

说明:如果 JSON 字符串以大括号({})开头和结尾,则解析数据类型为对象;如果 JSON 字符串以中括号([ ])开头和结尾,则解析数据类型为集合。

工具

推荐网站:JSON 在线解析
高效插件:
JsonToKotlinClass
安装&使用

上一篇 下一篇

猜你喜欢

热点阅读