Google GSON 基础教程 – Gson 最简代码

五、Google GSON 基础教程 – Gson 最简代码

从一个 Java 对象生成 JSON 字符串,需要几个步骤几行代码?

如果你 百度一下 或者 谷歌一下 ,如果你访问的是国内的教程,那么,绝对会告诉你,需要三行,如果加上 import 语句,那么至少需要五行

1
2
3
4
5
6
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

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

有些比较好的教程,还会解释一下 GsonBuilder builder = new GsonBuilder(); 这行代码是做什么用的,那些直接吵来吵去的文章,则连这一点都忽略了。

而事实上,从一个 Java 对象生成 JSON 字符串只需要简单的两个步骤,从某些方面说,也是简单的两行代码

1、 实例化一个 Gson 对象

1
Gson gson = new Gson();

2、 调用 gson.toJson() 方法从一个 Java 对象生成 JSON 字符串

1
String rs = gson.toJson(hello);

所以,加上 import 语句,其实只要简单的三行代码就可以从一个 Java 对象生成 JSON 字符串

1
2
3
import com.google.gson.Gson;
Gson gson = new Gson();
String rs = gson.toJson(hello);

是的,就这么简单….

这个,也是你从上一章节看到的 Hello World 中的代码,这就是 Google GSON 最为简单的,也最为简介的使用方式。

最为简洁的 Gson 生成 JSON 字符串的代码

经过前面的解析,我们知道,如果没有什么特殊的定制,并不需要 GsonBuilder 先创建一个 GSON 构建器,而是可以直接生成 Gson 对象

因此,最为简单的生成 JSON 字符串的代码如下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
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
2
3
4
5
6
7
gradle run

> Task :run
{"msg":"Hello Google GSON"}

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

最为简洁的 Gson 从 JSON 字符串生成 Java 对象的代码

既然生成 JSON 的代码如此简洁,那么从 JSON 字符串生成 Java 对象的代码也相应的简洁,这是我们所选择 Google 出品的原因。

事实也是如此,从一个 JSON 字符串生成一个 Java 对象的也只需要简单的两个步骤,从某些方面说,也是简单的两行代码

1、 实例化一个 Gson 对象

1
Gson gson = new Gson();

2、 调用 gson.fromJson() 方法从 JSON 字符串生成 Java 对象

1
Greeting hello = gson.fromJson(jsonString, Greeting.class);

所以,加上 import 语句,其实只要简单的三行代码就可以从 JSON 字符串生成 Java 对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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) {

String jsonString = "{\"msg\":\"Hello Google GSON\"}";

Gson gson = new Gson();
Greeting hello = gson.fromJson(jsonString, Greeting.class);

System.out.println(hello.msg);
}
}

使用 gradle run 命令的运行结果如下

1
2
3
4
5
6
7
gradle run

> Task :run
Hello Google GSON

BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed

是不是很简单?