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]