Gson下载的话大家可以去网上找下,下载jar加入到项目工程就可以使用。本文主要讲Gson一些常用用法。
toJson就是转为Json,fromJson就是解析Json。
有:
一.数组类型与Gson之间的相互转换
二.Bean对象 与Gson之间的相互转换
三.List集合类型与 Json 转换
四.Map与Gson,和List差不多
一.数组类型与Gson之间的相互转换
Gson gson = new Gson();
int[] ints = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
String[] strings= { "Onw", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten" };
String intsJson = gson.toJson(ints);
String stringsJson = gson.toJson(strings);
System.out.println("intsJson --->>> " + intsJson);
System.out.println("stringsJson --->>> " + stringsJson);
输出结果为
intsJson --->>> [1,2,3,4,5,6,7,8,9,10]
stringsJson --->>> ["Onw","Two","Three","Four","Five","Six","Seven","Eight","Nine","Ten"]
好像没什么变化,数组类型与Json间用的比较少。继续看下面
二.Bean对象 与Gson之间的相互转换
假如现在有个对象Person
public class Person {
int age;
String name;
public Person(int age , String name) {
// TODO Auto-generated constructor stub
this.age = age;
this.name = name;
}
}
然后
Gson gson = new Gson();
Person person = new Person(23 , "Hong");
String personJson = gson.toJson(person);
System.out.println("PersonJson --->>>" + personJson);
输出 PersonJson --->>>{"age":23,"name":"Hong"}
然后要把Json转为对象的话。这里\" 才表示一个双引号
Person personFromJson = gson.fromJson("{\"age\":23,\"name\":\"Hong\"}" , Person.class);
List list = new ArrayList();
for(int i = 0 ; i < 5 ; i++){
list.add(new Person(i, "Hong" + i + i));
}
String listJson = gson.toJson(list);
System.out.println("List >>--" + listJson );
输出结果为:List>>--[{"age":0,"name":"Hong00"},{"age":1,"name":"Hong11"},{"age":2,"name":"Hong22"},{"age":3,"name":"Hong33"},{"age":4,"name":"Hong44"}]
是不是感觉很好用!
List的JSON再转为List<> 的话 ,需要用到 Type .Type 为 java.lang.reflect.Type 包下的
Type type = new TypeToken>(){}.getType();
List personList = gson.fromJson(listJson , type);
for (Person person : personList) {
System.out.println("person age = " + person.age);
}
输出结果就不贴了
Map colours = new HashMap();
colours.put("BLACK", "#000000");
colours.put("RED", "#FF0000");
colours.put("GREEN", "#008000");
String mapJson = gson.toJson(colours);
System.out.println("MapJson = " + mapJson);
输出结果
MapJson = {"RED":"#FF0000","BLACK":"#000000","GREEN":"#008000"}
Type type = new TypeToken
细心对比发现主要是TypeToke里面参数变了另一个而已。
Gson常用的用法大概就是这样。