美文网首页
Kevin Learn Kotlin:数据解析(gson)

Kevin Learn Kotlin:数据解析(gson)

作者: Kevin_小飞象 | 来源:发表于2021-12-17 09:14 被阅读0次
    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
    安装&使用

    相关文章

      网友评论

          本文标题:Kevin Learn Kotlin:数据解析(gson)

          本文链接:https://www.haomeiwen.com/subject/pulvfrtx.html