IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android:kotlin中Gson与JSON的泛型映射解析 -> 正文阅读

[移动开发]Android:kotlin中Gson与JSON的泛型映射解析

背景:

在Android中,kotlin的使用,可以极大美化代码和带来代码上的简洁,但是kotlin之前,android的主要语言是Java。

在android中,解析数据是比较常见的手法。JavaBean,GSON,JSONOBJECT,这三大员是合作伙伴,但是在kotlin中依然支持这种写法,但是kotlin的data GSON,JSONOBJECT,与Java解析有所不同

Java:

People{

private String name="";

private String sex="";

public void setName(String name)

{

this.name=name

}

public void setSex(String sex){

this.sex=sex;

}

public String getName(){

return name;

}

public String getSex()

{

return sex;

}

}

Json:{"name":"zhangshan","sex":"男"}
?

解析如下

People people=new Gson().fromJson(json,People.class);

这是Java的解析。

kotlin:

kotlin的解析与Java不同,JavaBean在kotlin中叫数据data

data class People(var name:String="",var sex:String="");

或者直接定义一个class类也行

class?People{

var name:String=""

var sex:String=""

}

解析GSON:

我们在做解析最好能做到通用,所以在做解析工具有点不同,如下

object GsonUtil {

    public inline fun <reified T> getGsonObject(json: String): T? {
        val result = Gson().fromJson<T>(json)
        return result

    }
//type 泛型扩展
    inline fun <reified T> Gson.fromJson(json: String) = this.fromJson<T>(json, object : TypeToken<T>() {}.type)


}

GSON在kotlin的最大泛型处理在于type部分,所以我们在内部通过扩展函数,对Gson.fromJson进行扩展,这样我们就可以直接使用方法参数泛型解析。

这里面不同于Java的函数泛型,kotlin支持方法泛型。

总结:

不同在于bean的定义,kotlin中叫data class

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-06-29 19:12:58  更:2022-06-29 19:13:42 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 3:59:55-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码