今天本身在作一個用Gson對json數據解析的問題,具體步驟以下,本人是才疏學淺,還望高手勿噴java
一。首先到官網下載Gson的架包。http://code.google.com/p/google-gson/downloads/list(若是沒記住網址,直接在Google瀏覽器輸入Gson,通常第一個就是)json
二。建立一個實體類(Student.java)瀏覽器
package com.entity;ide
public class Student {ui
private String id;this
private String name;google
private int age;spa
public String getId() {code
return id;對象
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "id=" + id + ", name=" + name + ", age=" + age;
}
}
三。簡單類型解析
1.把單個對象解析成Json
// 把對象解析成json,bean--->json
private static void beanToJson()
{
Student stu = new Student();
stu.setId("10001");
stu.setName("jerry");
stu.setAge(21);
Gson gson = new Gson();
String str = gson.toJson(stu);
System.out.println(str);
//輸出結果:{"id":"10001","name":"jerry","age":21}
}
2.把Json解析成對象
//把json解析成對象,json--->bean
private static void jsonToBean()
{
//注意轉義字符
String str = "{\"id\":\"10001\",\"name\":\"jerry\",\"age\":21}";
Gson gson = new Gson();
Student stu = gson.fromJson(str, Student.class);
System.out.println(stu);
//輸出結果:id=10001, name=jerry, age=21
}
3.把List解析成json,list--->json
//把list解析成json,list--->json
private static void listTojson()
{
List<String> list = new ArrayList<String>();
list.add("jerry");
list.add("tom");
Gson gson = new Gson();
String str = gson.toJson(list);
System.out.println(str);
//輸出結果:["jerry","tom"]
}
4.把json解析成List
//把json轉換成list,json--->list
private static void jsonToList()
{
String str = "[\"jerry\",\"tom\"]";
Gson gson = new Gson();
List<String> list = gson.fromJson(str, new TypeToken<List<String>>(){}.getType());
System.out.println(list);
//輸出結果:[jerry, tom]
}
5.Map解析成json
//Map解析成json
private static void mapToJson()
{
Map<String, String> map = new HashMap<String, String>();
map.put("name", "jerry");
map.put("age", "21");
Gson gson = new Gson();
String str = gson.toJson(map);
System.out.println(str);
//輸出結果:{"age":"21","name":"jerry"}
}
6.json解析成Map
//json解析成Map
private static void jsonToMap()
{
String str = "{\"age\":\"21\",\"name\":\"jerry\"}";
Gson gson = new Gson();
Map<String, String> map = gson.fromJson(str, new TypeToken<Map<String, String>>(){}.getType());
System.out.println(map);
//輸出結果:{age=21, name=jerry}
}
四。複雜類型
1.List<Bean>解析成json
//List<Student>解析成json
private static void listBeanToJson()
{
Student stu = new Student();
stu.setId("10002");
stu.setName("jerry");
stu.setAge(21);
List<Student> list = new ArrayList<Student>();
list.add(stu);
Gson gson = new Gson();
String str = gson.toJson(list);
System.out.println(str);
//輸出結果:[{"id":"10002","name":"jerry","age":21}]
}
2.json解析成List<Bean>
//json解析成List<Student>
private static void jsonToListBean()
{
String str = "[{\"id\":\"10002\",\"name\":\"jerry\",\"age\":21}]";
Gson gson = new Gson();
List<Student> list = gson.fromJson(str, new TypeToken<List<Student>>() {}.getType());
System.out.println(list);
System.out.println(list.get(0));
System.out.println(list.get(0).getId());
//輸出結果:[id=10002, name=jerry, age=21]
id=10002, name=jerry, age=21
10002
}
3.Map<"String", Bean>解析成json
//Map<String, Student>解析成json
private static void mapBeanToJson()
{
Student stu = new Student();
stu.setId("10001");
stu.setName("jerry");
stu.setAge(22);
Map<String, Student> map = new HashMap<String, Student>();
map.put("stu", stu);
Gson gson = new Gson();
String str = gson.toJson(map);
System.out.println(str);
//輸出結果:{"stu":{"id":"10001","name":"jerry","age":22}}
}
4.json 解析成Map<String, Bean>
//json解析成Map<String, Student>
private static void jsonToMapBean()
{
String str = "{\"stu\":{\"id\":\"10001\",\"name\":\"jerry\",\"age\":22}}";
Gson gson = new Gson();
Map<String, Student> stu1 = gson.fromJson(str,
new TypeToken<Map<String, Student>>() {
}.getType());
Set<String> set = new HashSet<String>();
set = stu1.keySet();
for (String key : set) {
System.out.println(stu1.get(key));
System.out.println(stu1.get(key).getId());
}
System.out.println(stu1);
//輸出結果:id=10001, name=jerry, age=22
10001
{stu=id=10001, name=jerry, age=22}
}
五。再複雜一點的也能夠進行嵌套使用。至於GsonBuilder這個類沒有去研究,下次研究好了再寫。