Gson的使用
Java对象和Json之间的互转,一般用的比较多的两个类库是Jackson和Gson
Serialization:序列化,使Java对象到Json字符串的过程。
Deserialization:反序列化,字符串转换成Java对象
Gson的创建方式:
导入maven依赖
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.3.1</version>
</dependency>
1.序列化,从对象变为json
普通对象
Students对象包含name,age属性
Students s = new Students("zhangsan",12);
Gson gson = new Gson();
String jsons = gson.toJson(s);
输出结果为:{“name”:“zhang”,“age”:18}
数组对象也可以使用
ArrayList<Students> ss = new ArrayList<Students>();
ss.add(new Students("wang",20));
ss.add(new Students("li",22));
String jsonas = gson.toJson(ss);
输出结果为[{“name”:“wang”,“age”:20},{“name”:“li”,“age”:22}]
2.反序列化,从json对象转换为对象
普通json对象:
Students students = gson.fromJson(json, Students.class);
数组json对象
1>ArrayList s2 = gson.fromJson(jsonas, ArrayList.class);
2>ArrayList<Students> s3 = gson.fromJson(jsonas,new TypeToken<ArrayList<Students>>(){}.getType());
1的输出为:[{name=wang, age=20.0}, {name=li, age=22.0}]
2的输出为:[Students{name=‘wang’, age=20}, Students{name=‘li’, age=22}]
这里实际上是数组对象和集合对象的区别,数组对象可以使用fromjson方法直接转换
集合对象则需要使用TypeToken