前言
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?)
@SerializedName指定key的名称
/**
* 帮助列表的item数据
*/
data class HelpBean(val id: Int,
/**
* 问题分类名称
*/
@SerializedName("category_name") val categoryName: String,
/**
* 问题分类key
*/
@SerializedName("category_key") val categoryKey: String,
/**
* 排序
*/
val sort: Int
)
下划线转驼峰
//下划线转驼峰gson
val gsonUnderline2Hump = GsonBuilder()
.setFieldNamingPolicy(FieldNamingPolicy.LOWER_CASE_WITH_UNDERSCORES)
.create()
End
本文来自博客园,作者:观心静 ,转载请注明原文链接:https://www.cnblogs.com/guanxinjing/p/16108293.html
本文版权归作者和博客园共有,欢迎转载,但必须给出原文链接,并保留此段声明,否则保留追究法律责任的权利。