GSON 的基础使用方法

Overview

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

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

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

C:\Users\计算机名称\AppData\Local\Android\Sdk\tools\lib

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

因为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就基本完成了。但是这些只是我们的基础。

原文地址:https://www.cnblogs.com/cao-1/p/12299204.html

时间: 2024-11-06 03:28:58

GSON 的基础使用方法的相关文章

C#基础—匿名方法(Anonymous Mehod)

1.引入匿名方法 早在C# 2.0中就提出了匿名方法,实现了以一种内联的方式声明委托,在此之前,声明委托唯一的方法是"命名方法",虽然 C# 3.0 里有了lambda ,使得写内联代码更加简洁和方法,但是匿名方法依然有他的用处,匿名方法提供了可以忽略参数列表的能力. 2.匿名方法的使用和注意点 什么匿名方法?简单的理解就是没有定义名字的方法(其实编译器还是帮我们生成了一个方法).代码的实现就是把方法的定义和方法的实现内联到了一起. 先看个演示例子: 1 class Program 2

1.28 Java基础总结 ①方法重载②构造方法

1.28 Java基础总结 ①方法重载②构造方法 一.方法的重载在同一个类中,方法名相同,形参列表不同访问修饰符.返回类型和是否重载无关:按顺序对应的形参列表类型不同即可 二.构造器在类创建一个实例时被调用,构造方法只能用new关键字调用目的:初始化实例,初始化类属性(0,0.0,null,false)无返回值,和类名一致,用来构造对象作用:为对象分配内存, 创建并初始化成员变量(通过类创建,所以可以在static方法中调用构造方法) 返回引用,引用.属性:引用.方法(所以无返回值) 三.构造方

js写基础insertAfter()方法

DOM没有提供insertAfter()方法,使用js写一个基础的insertAfter()方法. ? 1 2 3 4 5 6 7 8 9 10 11 12 <script type="text/javascript"> function insertAfter(newElement,targetElement){     var parent = targetElement.parentNode;     if(targetElement == parent.lastCh

附录A培训实习生-面向对象基础(3):方法重载

就上一篇代码而言,你如果写Cat cat = new Cat();会直接报错错误 : 1       “Cat”方法没有采用“0”个参数的重载 E:\大话设计模式学习\BigDesignPatterns\附录A培训实习生之面向对象基础\动物运动会\AnimalGames\Form1.cs       20     23     AnimalGames 原因就是必要给小猫起名字.如果当真需要不起名字也要生出小猫来,可以采用方法重载. 方法重载提供了创建同名的多个方法的能力,但这些方法需使用不同的参

SaltStack介绍——SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流

SaltStack介绍和架构解析 简介 SaltStack是一种新的基础设施管理方法开发软件,简单易部署,可伸缩的足以管理成千上万的服务器,和足够快的速度控制,与他们交流,以毫秒为单位.SaltStack提供了一个动态基础设施通信总线用于编排,远程执行.配置管理等等.SaltStack项目于2011年启动,年增长速度较快,五年期固定基础设施编制和配置管理的开源项目.SaltStack社区致力于保持盐项目集中.友好.健康.开放.  简单来说它的两大基础功能就是:配置管理.远程命令执行.剩下就是根据

gson的简单使用方法

gson和其他现有java json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段. 下面是一个简单的例子: publicclass Person { private String name;privateint age; /*** @return the name*/public String getName() {return name;} /*** @param nam

Java基础02 方法与数据成员(转载)

对象中的数据成员表示对象的状态.对象可以执行方法,表示特定的动作. 此外,我们还了解了类(class).同一类的对象属于相同的类型(type).我们可以定义类,并使用该定义来产生对象. 调用同一对象的数据成员 方法可以调用该对象的数据成员.比如下面我们给Human类增加一个getHeight()的方法.该方法返回height数据成员的值: public class Test{    public static void main(String[] args){        Human aPer

OC基础之方法和参数的命名规范

以前学过C/C++/Java/C#语言的童鞋可能刚开始对于OC的方法和参数的命名规范大为不爽 举例来说,如下一个OC方法: - (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 这个方法,如果在传统的C++编程语言中应该是: void tableViewCom

java在acm中常用基础技巧方法

java在acm中常用基础技巧方法 如果学到了新的技巧,本博客会更新~ input @Frosero import java.util.*; public class Main { static String a; static int c; static Scanner cin = new Scanner(System.in); public static void main(String[] args) { while(cin.hasNext()){ // while(scanf("%d&q