Gson 对象序列化
gson 对象序列化
让我们将 java 对象序列化为json文件,然后读取该 json 文件以获取该对象。在这个例子中,我们创建了一个 student 类。我们将创建一个 student.json 文件,该文件将具有 student 对象的 json 表示。
1. 范例
在 c:\>gson_workspace中创建名为 gsontester 的java类文件。
文件: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+ " ]"; } }
2. 验证结果
使用 javac 编译器编译类如下 -
c:\gson_workspace>javac gsontester.java
现在运行gsontester查看结果 -
c:\gson_workspace>java gsontester
验证输出
student [ name: mahesh, age: 10 ]