1、需要简单的对Gson库进行引用(在compose中使用)
implementation ("com.google.code.gson:gson:2.10")
2、对于简单的json类型,创建Gson对象,新建立一个数据类(要对应json数据里面的内容)
data class person(
val name:String,
val ddd:String
)
var test = "{\"name\":\"asdfasf\",\"dddd\":1312}"
//将json里面对应的类型通过数据类映射过去
val person = gson.fromJson(test, person::class.java)
Log.d("dddd", person.name)
可以看到输出结果是
2024-05-15 15:25:52.339 17095-17095 dddd com.example.myfinallyapp01 D asdfasf
3、对于复杂的json类型数组 期望成的数据类型 借助TypeToken进行
var jsonString = "[{'title': '女生', 'videoimage': 'https://hb.userpicimage.com/a78914d9e563v.jpg', 'videotime': '2024-05-15', 'videourl': 'https://s3.dyjplayer.xyz/d88589d5db04/HD/29/2024-05-15/a78914d9e563/502efdaad0d7/playlist.m3u8'}, {'title': '癖', 'videoimage': 'https://hb.userpicimage.com/bf206393a7b0v.jpg', 'videotime': '2024-05-15', 'videourl': 'https://s3.dyjplayer.xyz/d88589d5db04/HD/29/2024-05-15/bf206393a7b0/c851f52ad3e6/playlist.m3u8'}, {'title': '真实遭遇', 'videoimage': 'https://hb.userpicimage.com/07fe3de011e0v.jpg', 'videotime': '2024-05-15', 'videourl': 'https://s3.dyjplayer.xyz/d88589d5db04/HD/29/2024-05-15/07fe3de011e0/02804234e444/playlist.m3u8'}]"
val gson = Gson()
//设置一个期望值的对象
val videoListType = object : TypeToken<List<VideoInfo>>() {}.type
//通过期望值的对象,传入json格式化中
val videoList: List<VideoInfo> = gson.fromJson(jsonString, videoListType)
Log.d("dddd", videoList.toString())
videoList.forEachIndexed { index, videoInfo ->
Log.d("dddd", videoInfo.videourl)
}