使用Gson送解析Json格式

Java bean:

package com.jingle.a;



public class Person {

    public String name;

    public int age;

    

    public Person (){

        

    }

    public Person(String name, int age) {

        super();

        this.name = name;

        this.age = age;

    }

    

    public String toString() {

        return "Person [name=" + name + ", age=" + age + "]";

    }

    

    



}

测试类:

 1 package com.jingle.a;

 2 

 3 import java.util.ArrayList;

 4 import java.util.List;

 5 

 6 import com.google.gson.Gson;

 7 import com.google.gson.reflect.TypeToken;

 8 

 9 public class A {

10 

11     /**

12      * @param args

13      */

14     public static void main(String[] args) {

15         // TODO Auto-generated method stub

16 

17         Gson gson = new Gson();

18 

19         List<Person> perList = new ArrayList<Person>();

20         for (int i = 0; i < 5; i++) {

21             Person p = new Person(String.valueOf(i), i);

22             perList.add(p);

23 

24         }

25         // 对象实体的序列化:将对象实体转为json格式

26         String str = gson.toJson(perList);

27 

28         System.out.println(perList);

29         // list toString 带类名称

30         // [Person [name=0, age=0], Person [name=1, age=1], Person [name=2,

31         // age=2], Person [name=3, age=3], Person [name=4, age=4]]

32         System.out.println(str);

33 

34         // 使用Gson将list转为Json格式输出则不带类名,只是key-value

35         // [{"name":"0","age":0},{"name":"1","age":1},{"name":"2","age":2},{"name":"3","age":3},{"name":"4","age":4}]

36 

37         // json格式的反序列化,将json格式转为对象实体

38         // 在日常应用中,我们一般都会碰到两种情况,转成单一实体对象和转换成对象列表或者其他结构。

39 

40         String j1 = "{'name':'a', 'age':'25'}";

41         Gson g1 = new Gson();

42         // 单一实体对象

43         // 参数1:json数据,参数2:需要转换对象的类型

44         // **********************

45         Person p1 = g1.fromJson(j1, Person.class);

46         // **********************

47 

48         System.out.println(p1);

49 

50         // 对象列表

51         Gson g2 = new Gson();

52 

53         // **********************

54         List<Person> ps = g2.fromJson(str, new TypeToken<List<Person>>() {

55         }.getType());

56         // **可以看到上面的代码使用了TypeToken,它是gson提供的数据类型转换器,可以支持各种数据集合类型转换

57         // gson和其他现有java

58         // json类库最大的不同时gson需要序列化得实体类不需要使用annotation来标识需要序列化得字段,同时gson又可以通过使用annotation来灵活配置需要序列化的字段。

59         System.out.println(ps);

60 

61     }

62 }

 

你可能感兴趣的:(json)