文章永久连接:https://tech.souyunku.com/5524
从一个 Java 对象生成 JSON 字符串,需要几个步骤几行代码?
如果你 百度一下 或者 谷歌一下 ,如果你访问的是国内的教程,那么,绝对会告诉你,需要三行,如果加上 import
语句,那么至少需要五行
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
对象
Gson gson = new Gson();
2、 调用 gson.toJson()
方法从一个 Java 对象生成 JSON 字符串
String rs = gson.toJson(hello);
所以,加上 import
语句,其实只要简单的三行代码就可以从一个 Java 对象生成 JSON 字符串
import com.google.gson.Gson;
Gson gson = new Gson();
String rs = gson.toJson(hello);
是的,就这么简单….
这个,也是你从上一章节看到的 Hello World 中的代码,这就是 Google GSON 最为简单的,也最为简介的使用方式。
最为简洁的 Gson 生成 JSON 字符串的代码
经过前面的解析,我们知道,如果没有什么特殊的定制,并不需要 GsonBuilder
先创建一个 GSON 构建器,而是可以直接生成 Gson
对象
因此,最为简单的生成 JSON 字符串的代码如下
package com.souyunku.tech.gson;
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
命令输出的结果如下
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
对象
Gson gson = new Gson();
2、 调用 gson.fromJson()
方法从 JSON 字符串生成 Java 对象
Greeting hello = gson.fromJson(jsonString, Greeting.class);
所以,加上 import
语句,其实只要简单的三行代码就可以从 JSON 字符串生成 Java 对象
/*
* This Java source file was generated by the Gradle 'init' task.
*/
package com.souyunku.tech.gson;
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
命令的运行结果如下
gradle run
> Task :run
Hello Google GSON
BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
是不是很简单?
关于 Gson
类、toJson()
方法 和 fromJson()
方法,我们会在后面的章节中详细介绍