首页 理论教育 快速学习使用GSON解析数据

快速学习使用GSON解析数据

时间:2023-06-27 理论教育 版权反馈
【摘要】:使用GSON解析JSON数据,可以大大简化JSON数据解析过程,并避免参数缺少或对应不上等问题。在使用GSON之前,在内层的build.gradle文件,也就是app/build.gradle文件的de-pendencies中增加如下内容。添加以上内容,应用会自动下载GSON库,目前最新的版本是2.8.0,如图9-8所示在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法。新建项目GSON_Test,MainActivity的代码如下。图9-9 GSON示例运行结果

快速学习使用GSON解析数据

GSON为Google的一个开源JSON解析工具包,Gighub网址:https://github.com/google/gson。使用GSON解析JSON数据,可以大大简化JSON数据解析过程,并避免参数缺少或对应不上等问题。

在使用GSON之前,在内层的build.gradle文件,也就是app/build.gradle文件的de-pendencies中增加如下内容。

978-7-111-58810-8-Chapter09-30.jpg

添加以上内容,应用会自动下载GSON库,目前最新的版本是2.8.0,如图9-8所示

在GSON的API中,提供了两个重要的方法:toJson()和fromJson()方法。其中,toJson()方法用于实现将Java对象转换为相应的JSON数据,fromJson()方法则用于实现将JSON数据转换为相应的Java对象。

1.toJson()方法

toJson()方法用于将Java对象转换为相应的JSON数据,主要有以下几种形式。

978-7-111-58810-8-Chapter09-31.jpgString toJson(JsonElement jsonElement)

978-7-111-58810-8-Chapter09-32.jpgString toJson(Object src)

978-7-111-58810-8-Chapter09-33.jpgString toJson(Object src,Type typeOfSrc)

其中,第一个方法用于将JsonElement对象(可以是JsonObject、JsonArray等)转换成JSON数据;第二个方法用于将指定的Object对象序列化成相应的JSON数据;第三个方法用于将指定的Object对象(可以包括泛型类型)序列化成相应的JSON数据。

978-7-111-58810-8-Chapter09-34.jpg

图9-8 下载的GSON库

2.fromJson()方法

fromJson()方法用于将JSON数据转换为相应的Java对象,主要有以下几种形式。(www.xing528.com)

978-7-111-58810-8-Chapter09-35.jpg<T>T fromJson(JsonElement json,Class<T>classOfT)

978-7-111-58810-8-Chapter09-36.jpg<T>T fromJson(JsonElement json,Type typeOfT)

978-7-111-58810-8-Chapter09-37.jpg<T>T fromJson(JsonReader reader,Type typeOfT)

978-7-111-58810-8-Chapter09-38.jpg<T>T fromJson(Reader reader,Class<T>classOfT)

978-7-111-58810-8-Chapter09-39.jpg<T>T fromJson(Reader reader,Type typeOfT)

978-7-111-58810-8-Chapter09-40.jpg<T>T fromJson(String json,Class<T>classOfT)

978-7-111-58810-8-Chapter09-41.jpg<T>T fromJson(String json,Type typeOfT)

以上的方法用于将不同形式的JSON数据解析成Java对象。

新建项目GSON_Test,MainActivity的代码如下。

978-7-111-58810-8-Chapter09-42.jpg

978-7-111-58810-8-Chapter09-43.jpg

运行结果如图9-9所示。

978-7-111-58810-8-Chapter09-44.jpg

图9-9 GSON示例运行结果

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈