1.Maven Dependency
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.fool.json.gson</groupId> <artifactId>gson</artifactId> <version>0.0.1-SNAPSHOT</version> <packaging>jar</packaging> <name>GSON</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.1</version> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.11</version> <scope>test</scope> </dependency> </dependencies> </project>
?
2.POJO
Person.java
package org.fool.json.gson; import java.util.ArrayList; import java.util.List; import org.apache.commons.lang3.builder.ToStringBuilder; import org.apache.commons.lang3.builder.ToStringStyle; public class Person { private String username; private String password; private int age; private String address; private List<String> list = new ArrayList<>(); public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public List<String> getList() { return list; } public void setList(List<String> list) { this.list = list; } @Override public String toString() { return ToStringBuilder.reflectionToString(this, ToStringStyle.SHORT_PREFIX_STYLE); } }
?
3.JUnit Test
GsonTest.java
package org.fool.json.gson; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import org.junit.Before; import org.junit.Test; import com.google.gson.Gson; import com.google.gson.GsonBuilder; import com.google.gson.JsonIOException; import com.google.gson.JsonSyntaxException; public class GsonTest { private Gson gson = null; private Person person = null; @Before public void setUp() { gson = new GsonBuilder().create(); person = new Person(); person.setUsername("zhangsan"); person.setPassword("123456"); person.setAddress("beijing"); person.setAge(30); person.getList().add("hello"); person.getList().add("world"); person.getList().add("Hero"); person.getList().add("Heroine"); } ... }
?
toJsonTest
控制台输出通过GSON解析过的JSON格式的person数据,并存入gsonResult.json的文件中
... @Test public void toJsonTest() { gson.toJson(person, System.out); String result = gson.toJson(person); BufferedWriter bw = null; try { bw = new Buf