Java Json API:Gson使用简单入门

完全理解Gson(1):简单入门

本文是GSON系列文章的第一篇。本文是其他文章的基础,因此不需要任何GSON或JSON经验。第二篇文章提供了关于GSON反序列化(从JSON到Java)的示例,第三篇文章提供了关于GSON序列化(从Java到JSON)的示例。

下面列出的所有代码都可以在https://java-creed-examples.googlecode.com/svn/gson/Simple%20Gson%20Example. 找到。绝大部分示例都不会包含全部的代码,可能会忽略一些片段,这些片段都与讨论的示例无关。读者可以从上面的链接下载或查阅所有代码。

读者需要有基础的Java(教程)知识和很基础的Maven(首页)知识。这里展示的代码使用maven来下载GSON库。把项目导入到Springsource Tool Suite(推荐的IDE),无需任何配置。

下载与安装

在使用GSON API工作之前,你需要下载库(jar文件),并将其包含到类路径中。库,连同源代码和Java文档,都可以从下载。下载完毕后,添加gson-<version>.jar到类路径。对于那些偏好使用Maven管理依赖(JAR文件)的读者,添加如下依赖到pom.xml。

<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.4</version> </dependency>

需要修改 <version>2.2.4</version>。本文所有代码示例使用上面列出的版本。pom.xml文件拷贝可以在这里找到。

如果这个库用于web应用,请确保在WEB-INF/lib文件夹中保持一份拷贝。或者,GSON库可以放到应用服务器提供给web应用。

一个简单示例

GSON API提供一个类文件,Gson(Java文档),它被用来处理Java和JSON对象的转换。可以调用默认构造器,或如下代码的形式,使用GsonBuilder(Java文档)类创建这个类的实例。GsonBuilder类是可定制化的,并且允许开发者按需实例化Gson。

package com.javacreed.examples.gson.part1; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class SimpleExample1 { public static void main(String[] args) { Gson gson = new GsonBuilder().create(); gson.toJson("Hello", System.out); gson.toJson(123, System.out); } }

在上面的例子中,我们创建了一个Gson实例,并把Java String和int转化为JSON对象。以上代码命令行里的输出结果如下:

"Hello"123

这不是火箭科学,但它是一个开始。注意,上述的结果都将输入到命令行。该toJason()方法有两个参数,Java对象转换为JSON和可追加(Java的文档)的一个实例。我们可以很容易地改变了一个文件或网络流。

package com.javacreed.examples.gson.part1; import java.io.FileWriter; import java.io.IOException; import java.io.Writer; import com.google.gson.Gson; import com.google.gson.GsonBuilder; public class SimpleExample2 { public static void main(String[] args) throws IOException { Writer writer = new FileWriter("Output.json"); Gson gson = new GsonBuilder().create(); gson.toJson("Hello", writer); gson.toJson(123, writer); writer.close(); } } 注意

为什么变量声明为Writer类型,而实际类型是FileWriter?

尽量使用泛型是一个很好的方法。在上例中,我们只使用了Appendable和Writer接口定义的方法。使用泛型使代码更易于移植和维护,下面是个不好的例子。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgwdyp.html