在maven项目里,首先需要加入如下的依赖文件:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
对象与JSON的相互转换
package com.bean;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.ListIterator;
import org.junit.Test;
import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
/**
* 对象与JSON相互转换
*
*/
public class PersonToJsonTest {
// JSONl转Person对象,反射方式
@Test
public void testJsonToPerson() {
String json = "{\"name\":\"李四\",\"age\":\"30\"}";
Gson gson = new Gson();
Person person = gson.fromJson(json, Person.class);
System.out.println(person);
// 反射的三种方式:
// 1、就对象的.class属性
// 2、创建对象,然后调用对象的getClass()方法
// 3、使用Class对象中的forName()方法(最常用的一种方式)
}
// JSONl转Person对象,普通方式
@Test
public void testPersonToJson() {
Person person = new Person();
person.setAge(28);
person.setName("王麻子");
Gson gson = new Gson();
String json = gson.toJson(person);
System.out.println(json);
}
// Person对象集合转JSONl
@Test
public void testPersonsToJson() {
List<Person> persons = new ArrayList<>();
persons.add(new Person("张三",18));
persons.add(new Person("李四",19));
persons.add(new Person("王五",20));
String json = new Gson().toJson(persons);
System.out.println(json);
}
// JSONl转Person对象集合
@Test
public void testJsonToPersons() {
String json = "[{\"name\":\"张三\",\"age\":18},{\"name\":\"李四\",\"age\":19},{\"name\":\"王五\",\"age\":20}]";
List<Person> persons = new Gson().fromJson(json, new TypeToken<List<Person>>(){}.getType());
System.out.println(persons);
}
}