Google GSON 基础教程 – Hello World

四、Google GSON 基础教程 – Hello World

有时候我也很无奈,为什么 IT 技术的任何教程,或者任何工具,首先要做的,就是输出 Hello World。 我不止一次问过自己这个傻逼的问题,也在一次一次的从别人的教程中一遍又一遍的输出 Hello World

直到有一天,我被一个巨型的项目难住了,这是别人写的,离职后我接手维护的项目。

光是环境配置,就耗费了一天,还没解决。也就是说,在那个项目中,我连输出 Hello World 项目的机会都没有。

本文,并不是一个正常的标准的规范的 Hello World。 如果你使用任何 Java IDE,比如 Android Studio 或者 IDEA 全称 ( IntelliJ IDEA) 或者 Eclipse ,那么写一个 Google GSON 远远比这个本文简单。

作为基础项目,本系列教程所有接下来的项目都会以本文为基础创建

Gradle + Sublime Text 3 + Google GSON 项目

在本站的所有教程中,我不止一次提到作者我使用的编辑器是 Sublime Text 3 ,因此我的 Hello Google GSON 项目就要自己手动生成了。

在我们继续之前,我们假设你已经正确安装了 Java 环境和 Gradle 构建工具

1、 创建项目目录 HelloGSON

在你的项目目录下新建一个目录 HelloGSON ,用于保存所有 Hello Google GSON 项目文件

1
2
mkdir HelloGSON
cd HelloGSON

2、 进入到 HelloGSON 目录后,我们使用 gradle init 命令来创建项目**gradle init**输入命令然后按下回车键后,会弹出项目类型选择

1
2
3
4
5
6
7
8
9
Select type of project to generate:
1: basic
2: groovy-application
3: groovy-library
4: java-application
5: java-library
6: kotlin-application
7: kotlin-library
8: scala-library

3、 因为我们需要一个完整的 Java 应用程序,所以,输入 4 然后按回车键,然后会弹出 gradle 配置语言选择

1
2
3
4
Select build script DSL:
1: groovy
2: kotlin
Enter selection (default: groovy) [1..2]

如果你对 kotlin 语言熟悉,可以输入 2 ,因为作者对 groovy 的配置语言比较熟悉,所以直接按下回车了

4、 然后弹出的是测试框架选择,我们的教程,并不是一个什么大型的目录,所以直接回车即可

1
2
3
4
5
Select test framework:
1: junit
2: testng
3: spock
Enter selection (default: junit) [1..3]

5、 接下来弹出的是项目的名字,这个直接回车就好,也就是项目名字和目录名字是一样的

1
Project name (default: HelloGSON):

6、 接下来的项目的包名,默认的包名太傻了,我们就输入 com.json 作为包名吧

1
Source package (default: HelloGSON): com.json

7、 按下回车后,项目就构建完成了

1
2
BUILD SUCCESSFUL in 7m 20s
2 actionable tasks: 2 executed

项目结构

经过简单几个步骤,我们的 HelloGSON 项目就创建完成了,完整的目录结构如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
tree .
.
├── build.gradle
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar
│ └── gradle-wrapper.properties
├── gradlew
├── gradlew.bat
├── settings.gradle
└── src
├── main
│ ├── java
│ │ └── com
│ │ └── json
─ AppTest.java
└── resources

15 directories, 8 files

我们可以打开 App.java 文件,看看内容如何

1
2
3
4
5
6
7
8
9
10
11
package com.json;

public class App {
public String getGreeting() {
return "Hello world.";
}

public static void main(String[] args) {
System.out.println(new App().getGreeting());
}
}

运行项目

这个默认的项目是可以运行的,我们可以直接输入 gradle run 命令来运行

1
2
3
4
5
6
7
gradle run

> Task :run
Hello world.

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

通过结果中的 Hello World 可以看到,项目运行正常

添加 Google GSON 类库

打开 build.gradle 文件,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
plugins {
id 'java'
id 'application'
}

repositories {
jcenter()
}

dependencies {
implementation 'com.google.guava:guava:26.0-jre'
testImplementation 'junit:junit:4.12'
}

mainClassName = 'com.json.App'

为了节省空间,注释被我删了

然后在 dependencies 节点里的添加 Google GSON,添加完成后,内容如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
plugins {
id 'java'
id 'application'
}

repositories {
jcenter()
}

dependencies {
implementation 'com.google.guava:guava:26.0-jre'
implementation 'com.google.code.gson:gson:2.8.5'
testImplementation 'junit:junit:4.12'
}

mainClassName = 'com.json.App'

然后运行 gradle build 构建项目,这个动作会自动下载 Google GSON

编辑 App.java 文件完善 Hello Google GSON

打开我们的 App.java 文件

1、 首先,创建一个 Java 对象

为了简单起见,我们并不遵循标准的 JavaBean 或 POJO 的类创建,而是直接把公开属性

1
2
3
class Greeting {
public String msg;
}

2、 其次,导入 Google GSON 生成和解析 JSON 所需要的类

1
import com.google.gson.Gson;

3、 然后,在 main 方法中实例化一个 Greeting 对象

1
2
Greeting hello = new Greeting();
hello.msg = "Hello Google GSON";

4、 接着,实例化一个 Gson 对象

1
Gson gson = new Gson();

5、 最后,调用 gson 对象的 toJson() 方法将 Java 对象 hello 生成为 JSON 字符串

1
String rs = gson.toJson(hello);

6、 最后把结果输出到屏幕

1
System.out.println(rs);

完成上面这些步骤后,完整的 App.java 文件源码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package com.json;

import com.google.gson.Gson;

class Greeting {
public String msg;
}

public class App {
public String getGreeting() {
return "Hello world.";
}

public static void main(String[] args) {

Greeting hello = new Greeting();
hello.msg = "Hello Google GSON";

Gson gson = new Gson();
String rs = gson.toJson(hello);

System.out.println(rs);
}
}

然后,使用 gradle run 命令来运行项目

1
gradle run

输出结果如下

1
2
3
4
5
> Task :run
{"msg":"Hello Google GSON"}

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

可以看到,正确的输出了我们想要的 JSON 字符串