Gson - Tuần tự hóa đối tượng
Hãy tuần tự hóa một đối tượng Java thành một tệp Json và sau đó đọc tệp Json đó để lấy lại đối tượng. Trong ví dụ này, chúng tôi đã tạoStudentlớp học. Chúng tôi sẽ tạo ra mộtstudent.json tệp sẽ có json đại diện của Student vật.
Thí dụ
Tạo một tệp lớp Java có tên GsonTester trong C:\>GSON_WORKSPACE.
Tệp - GsonTester.java
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
public class GsonTester {
public static void main(String args[]) {
GsonTester tester = new GsonTester();
try {
Student student = new Student();
student.setAge(10);
student.setName("Mahesh");
tester.writeJSON(student);
Student student1 = tester.readJSON();
System.out.println(student1);
}
catch(FileNotFoundException e) {
e.printStackTrace();
}
catch(IOException e) {
e.printStackTrace();
}
}
private void writeJSON(Student student) throws IOException {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
FileWriter writer = new FileWriter("student.json");
writer.write(gson.toJson(student));
writer.close();
}
private Student readJSON() throws FileNotFoundException {
GsonBuilder builder = new GsonBuilder();
Gson gson = builder.create();
BufferedReader bufferedReader = new BufferedReader(
new FileReader("student.json"));
Student student = gson.fromJson(bufferedReader, Student.class);
return student;
}
}
class Student {
private String name;
private int age;
public Student(){}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String toString() {
return "Student [ name: "+name+", age: "+ age+ " ]";
}
}
Xác minh kết quả
Biên dịch các lớp bằng cách sử dụng javac trình biên dịch như sau -
C:\GSON_WORKSPACE>javac GsonTester.java
Bây giờ hãy chạy GsonTester để xem kết quả -
C:\GSON_WORKSPACE>java GsonTester
Xác minh đầu ra
Student [ name: Mahesh, age: 10 ]