在Java编程中,JSON(JavaScript Object Notation)是一种常用的数据交换格式,它轻量级、易于阅读和编写,同时也易于机器解析和生成,在很多项目中,我们经常需要将Java对象转换为JSON格式的字符串,或者将JSON字符串转换为Java对象,本文将详细介绍在Java中如何进行这一转换。
我们需要了解在Java中处理JSON的常用库,目前比较流行的有Gson、Jackson和Fastjson等,下面,我将分别介绍使用这些库进行JSON转换的方法。
使用Gson进行JSON转换
Gson是Google提供的一个Java库,可以用来将Java对象转换成其JSON表示,也可以将JSON字符串转换成等价的Java对象。
1、添加依赖
需要在项目中添加Gson的依赖,在Maven项目中,可以在pom.xml文件中添加以下依赖:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>2、Java对象转JSON字符串
以下是一个简单的示例:
import com.google.gson.Gson;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) {
Student student = new Student("张三", 20);
Gson gson = new Gson();
String json = gson.toJson(student);
System.out.println(json);
}
}输出结果:
{"name":"张三","age":20}3、JSON字符串转Java对象
以下是将JSON字符串转换为Java对象的示例:
import com.google.gson.Gson;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) {
String json = "{"name":"张三","age":20}";
Gson gson = new Gson();
Student student = gson.fromJson(json, Student.class);
System.out.println(student.getName() + " " + student.getAge());
}
}输出结果:
张三 20
使用Jackson进行JSON转换
Jackson是一个高性能的JSON处理库,支持简单的JSON转换,也支持复杂的JSON处理。
1、添加依赖
在Maven项目中,需要在pom.xml文件中添加以下依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.11.3</version>
</dependency>2、Java对象转JSON字符串
示例代码如下:
import com.fasterxml.jackson.databind.ObjectMapper;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) throws Exception {
Student student = new Student("李四", 25);
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(student);
System.out.println(json);
}
}输出结果:
{"name":"李四","age":25}3、JSON字符串转Java对象
以下是将JSON字符串转换为Java对象的示例:
import com.fasterxml.jackson.databind.ObjectMapper;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) throws Exception {
String json = "{"name":"李四","age":25}";
ObjectMapper mapper = new ObjectMapper();
Student student = mapper.readValue(json, Student.class);
System.out.println(student.getName() + " " + student.getAge());
}
}输出结果:
李四 25
使用Fastjson进行JSON转换
Fastjson是阿里巴巴提供的一个性能很高的JSON处理库。
1、添加依赖
在Maven项目中,需要在pom.xml文件中添加以下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>2、Java对象转JSON字符串
示例代码如下:
import com.alibaba.fastjson.JSON;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) {
Student student = new Student("王五", 30);
String json = JSON.toJSONString(student);
System.out.println(json);
}
}输出结果:
{"name":"王五","age":30}3、JSON字符串转Java对象
以下是将JSON字符串转换为Java对象的示例:
import com.alibaba.fastjson.JSON;
public class Student {
private String name;
private int age;
// 构造方法、getter和setter省略
public static void main(String[] args) {
String json = "{"name":"王五","age":30}";
Student student = JSON.parseObject(json, Student.class);
System.out.println(student.getName() + " " + student.getAge());
}
}输出结果:
王五 30
就是Java中常用的三种JSON处理库的使用方法,在实际项目中,你可以根据自己的需求选择合适的库进行JSON转换,希望本文能对你有所帮助。

