gson对象序列化的示例

 更新时间:2020年11月02日 14:50:16   作者:一点教程  
本文介绍如何将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.*;


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文件

以上就是gson对象序列化的示例的详细内容,更多关于Gson-对象序列化的资料请关注脚本之家其它相关文章!

相关文章

  • SpringBoot使用注解进行分页的实现示例

    SpringBoot使用注解进行分页的实现示例

    分页使用可以说非常普遍了,有时候会需要非常灵活的方式去开启或关闭分页,尝试使用一下注解的方式来进行分页,本文主要介绍了SpringBoot使用注解进行分页的实现示例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • Java中的StackOverflowError错误问题及解决方法

    Java中的StackOverflowError错误问题及解决方法

    这篇文章主要介绍了Java中的StackOverflowError错误,在本文中,我们仔细研究了StackOverflower错误,包括Java代码如何导致它,以及我们如何诊断和修复它,需要的朋友可以参考下
    2022-07-07
  • spring cloud gateway中netty线程池小优化

    spring cloud gateway中netty线程池小优化

    这篇文章主要介绍了spring cloud gateway中netty线程池小优化技巧示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Java使用poi操作excel实例解析

    Java使用poi操作excel实例解析

    这篇文章主要为大家详细介绍了Java使用poi操作excel的简单实例,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • JAVA类变量及类方法代码实例详解

    JAVA类变量及类方法代码实例详解

    这篇文章主要介绍了JAVA类变量及类方法代码实例详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • Java实战之超市收银管理系统的实现

    Java实战之超市收银管理系统的实现

    这篇文章主要介绍了如何利用Java实现超市收银管理系统,文中采用的技术有:Spring、SpringMVC、MyBatis、ThymeLeaf等,需要的可以参考一下
    2022-03-03
  • JDBC实现Mysql自动重连机制的方法详解

    JDBC实现Mysql自动重连机制的方法详解

    最近在工作中发现了一个问题,通过查找相关的资料终于解决了,下面这篇文章主要给大家介绍了关于JDBC实现Mysql自动重连机制的相关资料,文中给出多种解决的方法,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-07-07
  • Java 泛型(Generic)简介及用法详解

    Java 泛型(Generic)简介及用法详解

    泛型是一种把类型明确的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型,参数化类型,把类型当作参数一样的传递,本文给大家介绍Java 泛型(Generic)概述及使用,感兴趣的朋友跟随小编一起看看吧
    2023-10-10
  • Java中static关键字的作用解析

    Java中static关键字的作用解析

    这篇文章主要介绍了Java中static关键字的作用解析,Java 中,不能在所有类之外定义全局变量,只能通过在一个类中定义公用、静态的变量来实现一个全局变量,需要的朋友可以参考下
    2023-11-11
  • JAVAE中servlet的概念及使用示例详解

    JAVAE中servlet的概念及使用示例详解

    servlet是一种实现动态页面的技术,他是由tomcat提供给程序员的一组API可以帮助程序员开发一个web程序,这篇文章主要介绍了JAVAE中servlet的概念及使用,需要的朋友可以参考下
    2024-05-05

最新评论