首页 > Web开发 > 详细

json数据格式和gson解析json的应用

时间:2018-03-23 17:14:11      阅读:231      评论:0      收藏:0      [点我收藏+]

首先json的数据格式分为三种:数组、对象、数组对象混合

数组格式:

{"asd","qwe","ffe"}

对象格式:

{"a":1,"b":2,"c":3}  注意写代码中要加入转义字符\来获取双引号:\"

数组对象混合格式:

{   [

    {"a":1,"b":2},

    {"c":3,"d":4}

    ]

    [

    ....

   ]

}

用Gson解析Json,如果是有对象格式,需要使用javabean来实现,代码如下:

1 //Object转换为对象
2         String str = "{\"data\":[{\"name\":sad,\"age\":18},{\"name\":ddd,\"age\":13}]}";
3         Gson g = new Gson();
4         ListPerson list = g.fromJson(str,ListPerson.class);
5         for (Person p:list.getList()){
6             System.out.println("age:"+p.getAge()+" name:"+p.getName());
7         }

因为是数组+对象的混合格式,需要两个javabean来实现,以下是javabean方面的代码:

 1 static class Person{
 2         public String name ;
 3         public int age;
 4         public String getName() {
 5             return name;
 6         }
 7 
 8         public void setName(String name) {
 9             this.name = name;
10         }
11 
12         public int getAge() {
13             return age;
14         }
15 
16         public void setAge(int age) {
17             this.age = age;
18         }
19     }
20 
21     static class ListPerson{
22         List<Person> data ;
23 
24         public List<Person> getList() {
25             return data;
26         }
27 
28         public void setList(List<Person> list) {
29             this.data = list;
30         }
31     }

注意点:名字要一一对应,因为在json中我的数组名是data,所以在javabean中什么的变量名也要是data,以下是换了别的名字,控制台输出信息:

java.lang.NullPointerException

接下来是对象转换为json数据格式,代码如下:

1 Map<String,Integer> map = new HashMap<>();
2         map.put("a",1);
3         map.put("b",2);
4         map.put("c",3);
5         System.out.println(new Gson().toJson(map));

如果在使用数组格式的json数据,要获取泛型类的类型,在gson中提供了一个方法

new TypeToken<List<Map.Entry<String,String>>>(){}.getType()


参考链接:https://www.jianshu.com/p/e740196225a4

json数据格式和gson解析json的应用

原文:https://www.cnblogs.com/shigeng/p/8631385.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!