gson对象序列化的示例

作者:一点教程 时间:2023-11-25 08:54:28 

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 运行测试

控制台输出:

gson对象序列化的示例

项目下生成student.json文件

gson对象序列化的示例

来源:http://www.yiidian.com/gson/gson-object-serialize.html

标签:gson,对象,序列化
0
投稿

猜你喜欢

  • java实现简单斗地主(看牌排序)

    2023-09-12 14:42:40
  • C#中利用代理实现观察者设计模式详解

    2022-02-25 17:49:36
  • C#多线程学习之(四)使用线程池进行多线程的自动管理

    2021-07-17 10:04:43
  • 关于Maven混合配置私有仓库和公共仓库的问题

    2021-10-15 20:30:51
  • C#通过属性名称获取(读取)属性值的方法

    2023-10-10 11:49:06
  • Android使用Room操作数据库流程详解

    2023-03-21 21:00:31
  • 详解Android TextView属性ellipsize多行失效的解决思路

    2022-03-02 16:00:32
  • 如何在c语言下关闭socket

    2021-12-26 10:22:46
  • C#将Unicode编码转换为汉字字符串的简单方法

    2021-06-05 02:11:38
  • Java之OutputStreamWriter流案例详解

    2023-11-11 13:03:55
  • C#中list用法实例

    2022-07-02 13:57:00
  • java使用静态关键字实现单例模式

    2023-11-29 13:37:33
  • 浅谈Java安全之C3P0的使用

    2022-06-06 00:22:11
  • Java实现简单班级管理系统

    2023-01-07 16:20:29
  • Android中View跟随手指移动效果

    2021-07-26 00:21:18
  • java图片缩放实现图片填充整个屏幕

    2021-06-09 18:30:07
  • Spring Boot JPA Repository之existsBy查询方法失效的解决

    2023-01-27 18:36:10
  • C# 开发(创蓝253)手机短信验证码接口的实例

    2023-05-22 11:15:54
  • java 中模式匹配算法-KMP算法实例详解

    2022-01-30 09:08:08
  • 属于自己的Android对话框(Dialog)自定义集合

    2022-08-03 23:09:21
  • asp之家 软件编程 m.aspxhome.com