分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 技术分享

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

发布时间:2023-09-06 01:46责任编辑:胡小海关键词:jsjson

首先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

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved