JSON在java中的使用
数据在客户端和服务端进行传输的时候,需要将类型转换为JSON格式
在导入gson包后
gson提供了两个方法对Javabean进行转换
gson.toJson()和
gson.fromJson()两个方法
public void test1(){ Person person = new Person(1,"白给涵"); //创建gson实例 Gson gson = new Gson(); //将person对象转换为JSON字符串 String personstring = gson.toJson(person); System.out.println(personstring); //将JSON字符串转换为person对象 Person personJson = gson.fromJson(personstring, Person.class); System.out.println(personJson); }
对list进行转换
在将JSON字符串转换为list集合时
需要先创建一个类型转换类,继承TypeToken类
具体实例如下
public class Persontype extends TypeToken<List<Person>> { }
List<Person>是你想转换的目的格式
在调用gson.fromJson()方法时,第二个参数需要填写刚刚创建的这个类型转换类
具体使用如下
public void test2(){ List<Person> personList = new ArrayList<>(); personList.add(new Person(1,"白给")); personList.add(new Person(2,"涵")); //创建实例 Gson gson = new Gson(); //进行转换 String personliststring = gson.toJson(personList); System.out.println(personliststring); //转换为list List<Person> personList1= gson.fromJson(personliststring, new Persontype().getType()); System.out.println(personList1.get(0)); }
因为每次都需要创建一个新的类去继承TypeToken,而这个子类却只用一次,因此会造成很大的资源浪费,所以可以将这个子类写为匿名类
例如
public void test2(){ List<Person> personList = new ArrayList<>(); personList.add(new Person(1,"白给")); personList.add(new Person(2,"涵")); //创建实例 Gson gson = new Gson(); //进行转换 String personliststring = gson.toJson(personList); System.out.println(personliststring); //转换为list List<Person> personList1= gson.fromJson(personliststring,new TypeToken<List<Person>>(){}.getType()); System.out.println(personList1.get(0)); }