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));
    }

 

posted @ 2022-05-18 09:30  软工小蜗牛  阅读(245)  评论(0)    收藏  举报