观心静

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

前言

  gson是Json解析框架,下面介绍kotlin的形式使用gson

依赖

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

实体类解析成字符串

 

val applyBean = ApplyBean("app", 1, "xxx.xx.xx")
val gson = GsonBuilder().create()
val jsonString = gson.toJson(gson) //可以选择放入jsonObject val jsonObject = JSONObject(jsonString)

 

字符串解析成实体类

 

val applyBeanString = "{ \"name\": \"aa\",\"icon\": 1,\"packageName\": \"xxxx\" }"
val gson = GsonBuilder().create()
val applyBean = gson.fromJson<ApplyBean>(applyBeanString, ApplyBean::class.java)

 

JsonArray字符串解析成实体类集合

        val jsonString = mSP.getString(key, "")
        if (jsonString.isNullOrEmpty()) {
            return mutableListOf()
        }
        val type = object : TypeToken<MutableList<ApplyBean>>() {}.type
        return mGson.fromJson(jsonString, type)

实体类集合解析成JsonArray字符串

        val list = mutableListOf<ApplyBean>()
        mGson.toJson(list)

指定字段不参与序列号与反序列化

关键字 @Transient 如果是java 直接在字段类型前面写写 transient 

data class ApplyBean(var name: String?,
                     @Transient
                     var icon: Drawable?,
                     var packageName: String?)

 

 

End

posted on 2022-04-06 20:17  观心静  阅读(154)  评论(0编辑  收藏  举报