GSON实现Java对象与JSON格式对象相互转换的完全教程
什么是GSON
GSON是Google提供的用来在Java对象和JSON数据之间进行序列化和反序列化的Java库。GSON可以将Java对象转化为JSON字符串,也可以将JSON字符串转化为相应的Java对象。
准备工作
在使用GSON之前,您需要做以下准备工作:
- 下载GSON库
可以通过Maven或Gradle将GSON库添加到项目的依赖项中,或者从GSON项目的GitHub页面下载JAR文件。
- 导入GSON库
将下载的JAR文件或库包含在项目中。
使用GSON将Java对象转换为JSON字符串
下面的代码演示了如何将Java对象转换为JSON字符串:
import com.google.gson.Gson;
public class Person{
private String name;
private int age;
}
Person person = new Person();
person.setName("John");
person.setAge(30);
Gson gson = new Gson();
String json = gson.toJson(person);
System.out.println(json);
输出结果:
{"name":"John","age":30}
使用GSON将JSON字符串转换为Java对象
下面的代码演示了如何将JSON字符串转换为Java对象:
import com.google.gson.Gson;
String json = "{\"name\":\"John\",\"age\":30}";
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);
System.out.println(person.getName());
System.out.println(person.getAge());
输出结果:
John
30
示例一
下面的示例将演示如何将具有嵌套对象的Java对象转换为JSON字符串,并将JSON字符串转换为相应的Java对象。在这个示例中,有一个Bicycle类,它包含一个Wheel类。
import com.google.gson.Gson;
public class Wheel {
private int size;
public Wheel(int size) {
this.size = size;
}
}
public class Bicycle {
private String brand;
private Wheel wheel;
public Bicycle(String brand, Wheel wheel) {
this.brand = brand;
this.wheel = wheel;
}
}
Wheel wheel = new Wheel(20);
Bicycle bicycle = new Bicycle("Giant", wheel);
Gson gson = new Gson();
String json = gson.toJson(bicycle);
System.out.println(json);
Bicycle bicycleFromJson = gson.fromJson(json, Bicycle.class);
System.out.println(bicycleFromJson.getBrand());
System.out.println(bicycleFromJson.getWheel().getSize());
输出结果:
{"brand":"Giant","wheel":{"size":20}}
Giant
20
示例二
下面的示例将演示如何将具有列表的Java对象转换为JSON字符串,并将JSON字符串转换为相应的Java对象。在这个示例中,有一个Student类,它有一个name属性和一组course属性。
import java.util.ArrayList;
import java.util.List;
import com.google.gson.Gson;
public class Course {
private String name;
private int score;
public Course(String name, int score) {
this.name = name;
this.score = score;
}
}
public class Student {
private String name;
private List<Course> courses;
public Student(String name) {
this.name = name;
this.courses = new ArrayList<Course>();
}
public void addCourse(Course course) {
this.courses.add(course);
}
}
Student student = new Student("Tom");
student.addCourse(new Course("math", 90));
student.addCourse(new Course("english", 80));
Gson gson = new Gson();
String json = gson.toJson(student);
System.out.println(json);
Student studentFromJson = gson.fromJson(json, Student.class);
System.out.println(studentFromJson.getName());
for (Course course : studentFromJson.getCourses()) {
System.out.println(course.getName() + ": " + course.getScore());
}
输出结果:
{"name":"Tom","courses":[{"name":"math","score":90},{"name":"english","score":80}]}
Tom
math: 90
english: 80
完整示例代码如下:
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:GSON实现Java对象与JSON格式对象相互转换的完全教程 - Python技术站