GSON 的基础使用方法

Posted cao-1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GSON 的基础使用方法相关的知识,希望对你有一定的参考价值。

Overview

今天的学习内容为:使用GSON解析我们的JSON字符串!

如何在我们的项目中优雅的添加我们的GSON依赖

在我们的android Studio 中 Google已经离线了我们的GSON jer包。让我们看一下jer包的地址:

C:Users计算机名称AppDataLocalAndroidSdk oolslib

这就是我们的离线地址了。我们只需要直接进行引用就可以了。

因为Google给我们离线的是GSON2.3的版本。这样我们该可以直接在我们的Android的build.gradle中直接添加我们的GSON依赖。
代码如下所示:implementation ‘com.google.code.gson:gson:2.3‘

看完了依赖的添加,接着就让我们看一下GSON的基本用法吧

首先在我们地添加完成依赖包后,我们就可以实例化我们的GSON了。
按照国际惯例!先看一下源代码:

class User {
    String name;
    String gender;

    public User(String name, String gender) {
        this.name = name;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }
}

我们先是创建了我们的User Model类。

创建完成后我们再添加数据!

//为实体类添加数据
User userObject = new User("曹佳豪", "男");

添加完成后我们我们就可以使用Gson来生成JSON字符串了。
这样我们最最基础的使用GSON生成JSON字符串就完成了。


然后我们在看一下如何将我们你的JSON字符串转换为我们的数据。
首先获取到我们的JSON字符串,然后在将我们的字符串通过GSON转换为我们的数据,看一下源代码:

User userData = gson.fromJson(jsonStr, User.class);

这样我们就可以将我们的json字符串转换为我们的数据了。
这样我们的基础操作就完成了

接着我们看一下如何操作List

首先我们显示创建了我们的模拟数据源,很简单:

List<User> usersList = new ArrayList<>();
int a = 5;
for (int i = 0; i < a; i++) {
    usersList.add(new User("曹佳豪", "男"));
}

我们可以看到,这里我在list中添加了五组数据 。
然后我们通过gson的toJson方法将其转换为我们的JSON字符串,String userJson = gson.toJson(usersList);
这样我们的转换就完成了。
然后我们看一下如何将json字符串转为我们的List数据。

List的反序列化
对于List,反序列化是必须要提供我们的Type,通过Gson提供的TypeToken.getType()方法可以定义之前List的Type.
我们来看一下源代码:

Type userListType = new TypeToken<List<User>>() {
}.getType();
List<User> userList = gson.fromJson(userJson, userListType);

这样我们的反序列化到List就完成了。


这样我们的Java 使用 GSON就基本完成了。但是这些只是我们的基础。

以上是关于GSON 的基础使用方法的主要内容,如果未能解决你的问题,请参考以下文章

Gson全解析(上)-Gson基础(转)

片段中的 Asynctask 未到达 onPostExecute

使用Gson和Anko

Kotlin基础从入门到进阶系列讲解(入门篇)Android之GSON的使用

GSON 的基础使用方法

完全理解Gson:简单入门