Gson的使用

来源:互联网 发布:网络艺名大全男 编辑:程序博客网 时间:2024/06/11 04:23

在说GSON前,先说一下这个maven和Junit.

maven这个工具确实挺好用的,以前我都是用maven写个pom.xml文件然后下载到文件夹里,再buildPath,但这次用idea的maven工程,直接吧需要的jar包放在pom文件下然后ctrl+S就自动给我导入jar包完毕了,不错。

既然用的maven,junit用的就是最新版,不过这4.11这个版本增加了新的jar包,需要新的jar包(hamcrest-all)下面是我的pom.xml

    <dependencies>        <dependency>            <groupId>com.google.code.gson</groupId>            <artifactId>gson</artifactId>            <version>2.2.4</version>        </dependency>        <dependency>            <groupId>junit</groupId>            <artifactId>junit</artifactId>            <version>4.11</version>        </dependency>        <!-- https://mvnrepository.com/artifact/org.hamcrest/hamcrest-all -->        <dependency>            <groupId>org.hamcrest</groupId>            <artifactId>hamcrest-all</artifactId>            <version>1.3</version>            <scope>test</scope>        </dependency>
首先贴一下Gson的简单使用。Gson提供了fromJson() 和toJson() 两个直接用于解析和生成的方法。这两个方法为我们提供了很方便的序列化和反序列化。但下面的只是针对于基础数据类型的操作。

    Gson gson = new Gson();    @Test    public void test() {        String hello = gson.toJson("Hello");        String num = gson.toJson(123);        Student stu = new Student("zhangsan", 22);        String cla = gson.toJson(stu);        System.out.println(hello);        System.out.println(num);        System.out.println(cla);        Student newStu = gson.fromJson(cla, Student.class);        System.out.println(newStu.toString());    }

下面是List的操作

    @Test    public void testArray() {        Room room = new Room();        room.addStudent();        System.out.println(room.getSize());        String roomString = gson.toJson(room);        System.out.println(roomString);        Room room2 = gson.fromJson(roomString, Room.class);        System.out.println(room2.toString());    }
最后就是我想说的,Gson有个特别的地方,就是他能吧不知道的数据转换成List<Map>形式,这样用起来就很方便了下面看示例。


    @Test    public void testList() {        List<Room> roomList = new ArrayList<Room>();        for (int i = 0; i < 100; i++) {            Room room = new Room();            room.addStudent();            roomList.add(room);        }        String roomListString = gson.toJson(roomList);        System.out.println(roomListString + "\n");        List<Room> roomList2 = gson.fromJson(roomListString, ArrayList.class);        roomListString = gson.toJson(roomList2);        System.out.println(roomListString + "\n");        List<Map<String, Object>> list = (List<Map<String, Object>>) gson.fromJson(roomListString, ArrayList.class);        System.out.println(list.size());        System.out.println(list.get(0).get("stuList"));        for (String key : list.get(1).keySet()) {            System.out.print(key);        }    }







原创粉丝点击