GSON速学必会

Posted 佳宁

tags:

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

一. GSON 简介

GSON是一个Java语言编写的用于处理JSON数据格式的开源应用程序编程接口项目。它将Java对象转换为JSON表示。还可以用于将JSON字符串转换为等效的Java对象。

技术分享图片

gson包包含了JSON数据处理的所有常见类和接口。gson内部的子包reflectannotation, 和 streamreflect包包含处理Java泛型类型信息的类和接口。annotation包包含相关的类和接口,用于对象属性的自定义名称映射。stream包包含与读写相关的类和接口。

GSON设计的初衷如下:

  • 有一个简单的转换机制,可以将Java对象转换为JSON。GSON Java项目有大量的实用方法作为api供开发人员使用。
  • 允许将先前存在的不可修改的Java对象转换为JSON和从JSON转换。
  • 定制对象的表示。GSON为对象字段提供了名称的自定义映射,同时将其序列化为JSON字符串。
  • 提供一个紧凑和格式化的输出。默认情况下,为Java对象生成的JSON字符串是紧凑的形式。GSON提供漂亮的打印设备以使其以人类可读的格式。

1. 在 GSON 中创建你的第一个 JSON

在本节中,将学习实例化GSON及其各种方法的含义,然后是一个快速示例代码,展示包装类型Java对象的基本序列化。

步骤1 - 实例化GSON

要使用GSON库,Gson类需要实例化一个com .google.GSON的对象。GSON对象不维护任何状态,这个特性有助于在多个地方重用GSON对象。

GSON库提供了实例化的两种方法:

  • 默认方法
  • 构造器使用设置方法

默认方法

在这种方法中,可以使用new关键字实例化GSON类对象。这种方法创建了一个没有设置的object实例。

构造器使用设置方法

在这种方法中,可以使用GsonBuilder类和create方法创建一个GSON类对象:

Gson gson = new GsonBuilder ().create ();

前面的代码调用了GsonBuildercreate方法,它返回一个Gson对象进行初始化。

下表列举了GSON公共的一些方法:

方法描述
fromJson 此方法用于反序列化以获取Java对象。 API中有此方法的重载的形式。
toJson 该方法将Java对象序列化为等效的JSON表示形式。 API中有此方法的重载的形式。
toJsonTree 该方法使用它们的泛型类型序列化对象。API中有此方法的重载的形式。

2. 一个简单的例子

让我们看看一个简单的例子代码,展示的基本使用GSON库对Java包装类进行序列化/反序列化对象的JSON字符串:

import com.google.gson.Gson;

public class QuickStartDemo {

    public static void main(String[] args) {

        Gson gson = new Gson();

    /*Java Wrapper Type*/
        String jsonInteger = gson.toJson(new Integer(1));
        String jsonDouble = gson.toJson(new Double(12345.5432));

        System.out.println("GSON toJson Method Use ");
        System.out.println(jsonInteger);
        System.out.println(jsonDouble);

        Integer javaInteger = gson.fromJson(jsonInteger, Integer.class);
        Double javaDouble = gson.fromJson(jsonDouble, Double.class);

        System.out.println("GSON fromJson Method Use ");
        System.out.println(javaInteger);
        System.out.println(javaDouble);
    }
}

输出结果为:

GSON toJson Method Use
1
12345.5432
GSON fromJson Method Use
1
12345.5432

前面的代码演示了toJsonfromJson的两种方法的快速使用。

在代码的第一部分中,使用默认方法实例化了一个Gson类对象,并使用值112345.5432实例化了两个Java 包装类对象,即Integer类和Double类。这些对象传递给toJson方法,该方法生成JSON等效字符串形式。

方法                          详细说明
toJSON        参数:使用Java类对象进行序列化。 返回:JSON对象的字符串表示形式
fromJSON   参数:第一个参数是JSON表示的字符串类型,第二个参数是预期的Java类类型。返回:预期的Java类对象

在代码的最后一部分中,JSON等效字符串传递给fromJson方法。 该方法有两个参数,第一个参数是一个字符串,第二个参数是一个预期的Java类类型。 fromJson方法的返回类型始终是Java类型。

以上是关于GSON速学必会的主要内容,如果未能解决你的问题,请参考以下文章

前端必学必会:Flex Box布局语法-属性学习攻略

前端必学必会:Flex Box布局语法-属性学习攻略

前端必学必会:Flex Box布局语法-属性学习攻略

零基础学C语言知识总结五:3种必学必会的循环结构

零基础学C语言知识总结五:3种必学必会的循环结构

RecyclerView未显示已解析的GSON数据