Gson-对象序列化

本文介绍如何将Java对象序列化为Json文件,然后读取该Json文件读取回Java对象。在下面的示例中,我们创建了一个Student类。然后生成一个student.json文件,该文件将具有Student对象的json数据。

1 编写核心类

MainApp:

package com.yiidian.gson;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;

import java.io.*;

/**
 * 一点教程网 - http://www.yiidian.com
 */
public class MainApp {

    public static void main(String args[]) {

        MainApp tester = new MainApp();
        try {
            Student student = new Student();
            student.setAge(10);
            student.setName("eric");
            tester.writeJSON(student);
            Student student1 = tester.readJSON();
            System.out.println(student1);
        }
        catch(FileNotFoundException e) {
            e.printStackTrace();
        }
        catch(IOException e) {
            e.printStackTrace();
        }
    }

    //把Java对象存储student.json文件
    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();
    }

    //从student.json文件读取Java对象
    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+ " ]";
    }
}

2 运行测试

控制台输出:

项目下生成student.json文件

热门文章

优秀文章