5、java中数组、集合、泛型与json的序列化和反序列化

1、json与java中的数组序列化与反序列化

    /*json与java中的数组序列化与反序列化*/
    @Test
    public void arrayBetweenJsonJava(){
        Gson gson = new Gson();
        /*把java中数组序列化为json形式*/
        String[] src = {"a", "b", "c"};
        String json = gson.toJson(src);
        System.out.println("json : " + json);

        /*把json反序列化为java中的数组*/
        String[] fromJson = gson.fromJson(json, String[].class);
        System.out.println("java : " + Arrays.toString(fromJson));
    }

运行程序,输出结果:

json : ["a","b","c"]
java : [a, b, c]

2、json与java中集合序列化与反序列化

    /*json与java中集合序列化与反序列化*/
    @Test
    public void ListBetweenJsonJava(){
        Gson gson = new Gson();
        /*把集合序列化为json*/
        List<String> list = new ArrayList<String>();
        list.add("lzj");
        list.add("Bob");
        String json = gson.toJson(list);
        System.out.println("json : " + json);

        /*把json反序列化为集合*/
        List<String> fromJson = gson.fromJson(json, new TypeToken<List<String>>(){}.getType());
        System.out.println("java : " + fromJson);
    }

运行程序,输出:

json : ["lzj","Bob"]
java : [lzj, Bob]

3、json与java中的泛型序列化与反序列化

public class Person<T> {
    private int id;
    private String name;
    private T age;
    /*省略set/get/toString*/
}
    /*json与java中的泛型序列化与反序列化*/
    @Test
    public void extensiveTypeBetweenJsonJava(){
        Gson gson = new Gson();
        /*java中泛型序列化为json*/
        Person<Integer> person = new Person<Integer>();
        person.setId(1);
        person.setName("lzj");
        person.setAge(27);
        String json = gson.toJson(person);
        System.out.println("json : " + json);

        /*把json反序列化为json中的集合*/
        Person<Integer> fromJson = gson.fromJson(json, new TypeToken<Person<Integer>>(){}.getType());
        System.out.println("java : " + fromJson);
    }

运行程序输出:

json : {"id":1,"name":"lzj","age":27}
java : Person [id=1, name=lzj, age=27]

猜你喜欢

转载自blog.csdn.net/u010502101/article/details/80552617