当前位置: 首页 > 文档资料 > Gson 中文教程 >

概述

优质
小牛编辑
130浏览
2023-12-01

Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,反之亦然。 它是由Google开发的开源库。

以下几点强调了您应该使用此库的原因 -

  • Standardized - Gson是由Google管理的标准化库。

  • Efficient - 它是Java标准库的可靠,快速和高效的扩展。

  • Optimized - 库高度优化。

  • Support Generics - 它为泛型提供广泛的支持。

  • Supports complex inner classes - 它支持具有深层继承层次结构的复杂对象。

Gson的特点

以下列出了Gson的一些最突出的功能 -

  • Easy to use - Gson API提供了一个高级外观,以简化常用的用例。

  • No need to create mapping - Gson API为大多数要序列化的对象提供默认映射。

  • Performance - Gson速度非常快,内存占用少。 它适用于大型对象图或系统。

  • Clean JSON - Gson创建一个干净,紧凑的JSON结果,易于阅读。

  • No Dependency - 除了JDK之外,Gson库不需要任何其他库。

  • Open Source - Gson库是开源的; 它是免费提供的。

处理JSON的三种方法

Gson提供了三种处理JSON的替代方法 -

流式API

它将JSON内容读写为离散事件。 JsonReaderJsonWriter将数据读/写为令牌,称为JsonToken

它是处理JSON的三种方法中最强大的方法。 它具有最低的开销,并且在读/写操作中非常快。 它类似于XML的Stax解析器。

树模型

它准备了JSON文档的内存树表示。 它构建了一个JsonObject节点树。 它是一种灵活的方法,类似于XML的DOM解析器。

数据绑定

它使用属性访问器将JSON转换为POJO(Plain Old Java Object)。 Gson使用数据类型适配器读/写JSON。 它类似于XML的JAXB解析器。

最后更新:

类似资料

  • 问题内容: 我注意到一个奇怪的问题。我可以使用Junit运行我的测试用例,但是当我使用maven运行时,其中一个测试用例失败。有人抱怨找不到Gson class def。 我能够在Maven依赖项中看到Gson jar。 因此,我怀疑classpath是否不包括Gson。因此,我使用-X运行Maven,并注意到了一些线索。 我有一个依赖于Symbology项目的项目,而这又使用了Gson。但是现在

  • Gson是Google Gson库的主要演员类。 它提供了将Java对象转换为匹配JSON结构的功能,反之亦然。 首先使用GsonBuilder构造Gson,然后使用toJson(Object)或fromJson(String,Class)方法来读/写JSON结构。 Class 声明 (Class Declaration) 以下是com.google.gson.Gson类的声明 - public

  • Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。 示例代码: Gson gson = new Gson(); int[] ints = {1, 2, 3, 4, 5}; String[] strings = {"abc", "def", "ghi"}; (Serializat

  • 主要内容:类声明,构造函数,类方法,继承的方法Gson是Google Gson库的主要操作类。 它提供了将Java对象转换为匹配的JSON结构的功能,反之亦然。 Gson首先使用构建,然后使用或方法读取/写入JSON构造。 类声明 以下是类的声明 - 构造函数 编号 构造函数 说明 1 用默认配置构造一个对象。 类方法 编号 方法 描述 1 此方法将从指定分析树读取的Json反序列化为指定类型的对象。 2 此方法将从指定分析树读取的Json反

  • gson-plugin 是强化 Android-JSON 解析的插件,解决 Android-JSON 解析数据类型转换异常,不影响对 Gson 库的使用。 gson-plugin 依赖的 sdk:https://github.com/LianjiaTech/gson-plugin-sdk 诞生背景 Android主要开发语言是Java,属于强数据类型语言,不少公司后台开发采用的是PHP,属于弱数据

  • 问题内容: 使用来反序列化参数化类的对象会导致的某些值,例如对于由和字段组成的简单类型: 有趣的是,当内联调用方法时,相同的代码也可以工作,即以下语句返回有效值: 的定义也很简单: 将方法更改为非静态不能解决问题。 有任何想法吗? 问题答案: 您想要我的解决方案是ParameterizedType 问题是T,因为Java不知道我的种类并生成T的类型 这是测试更多示例以纠正运行测试 testCont