Gson

今天本身在作一個用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這個類沒有去研究,下次研究好了再寫。

相關文章
相關標籤/搜索