栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Json解析

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Json解析

首先我们学东西最主要是希望有朝一日能用上它,json的解析是后端工程师的必备技能,工作中十分常见,那我们带着问题去学习,json的设计初衷是为了啥?
1.Json解析是干什么的?
答:把Java中的对象转换为Json格式的字符串,或者把Json格式的字符串转换成Java的对象的
2.为什么要对象,字符串两者之间转化?
答:给一个Java对象类给普通用户看,可能看不明白,但是如果以这样一种方式去操作:键值对,{姓名:张三 年龄:18 }这样的一种方式呈现给用户就可以看得明白了。当然我们也习惯了看这种方式
3.怎么转换?
第一步:导入Jar文件
Json解析的jar包有很多,最常见的就是2个。国内阿里的fastjson,这个漏洞好像有点多,但是在国内比较流行。另一个就是谷歌的Gson,个人比较喜欢的一个jar包。详细倒包过程见我的另一篇文章----IDEA倒包
第二步:Gson将对象转换为Json字符串:

在这里插入代码片
 public static void main(String[] args) {
        Gson gson = new Gson();
        Book b = new Book("100","西游记","师徒四人西行一路降妖除魔,到西天灵山取经的故事");
        String s = gson.toJson(b);
        System.out.println(s);
    }

得到 json数据如下图:

第三步:json 格式的字符串转换为对象,
1.准备好json格式的字符串数据,调用gson.fromJson(json数据,转换的类名.class)方法即可

在这里插入代码片
 public static void main(String[] args) {
        Gson gson = new Gson();
        Book book = gson.fromJson("{"id":"100","name":"西游记","info":"师徒四人西行一路降妖除魔,到西天灵山取经的故事"}", Book.class);
        System.out.println(book.getId());//图书有id号,并且有get,set方法
    }

得到书的 id号是:

这样就完成了json数据与java对象之间的转换了
进阶学习:没有对象的时候 json 可以转HashMap,其实json跟map还是挺像的,都是一个键值对,所以转起来也是十分方便。

在这里插入代码片
 public static void main(String[] args) {
        Gson gson = new Gson();
        HashMap hashMap = gson.fromJson("{"id":"100","name":"西游记","info":"师徒四人西行一路降妖除魔,到西天灵山取经的故事"}",HashMap.class);
        System.out.println(hashMap.get("info"));
    }

这样就得到一个HashMap对象,从而可以获取键或者值了。
结果:
另外如果json格式的数据当中有例如这样的,里面有像page这样的看似数组的json数据,其实它不是数组,是ArrayList。

{"id":"100","name":"金苹果","info":"种植苹果真辛苦","page":["锄禾日当午","汗滴禾下土","谁知盘中餐","粒粒皆辛苦"]}
在这里插入代码片 public static void main(String[] args) {
        Gson gson = new Gson();//
        HashMap hashMap = gson.fromJson("{"id":"100","name":"金苹果","info":"种植苹果真辛苦","page":["锄禾日当午","汗滴禾下土","谁知盘中餐","粒粒皆辛苦"]}",HashMap.class);
        System.out.println(hashMap.get("page").getClass());
    }

得到的结果截图:

也可以将其转换为List,然后使用

 		List list = (List) hashMap.get("page");
        System.out.println(list.get(1));

得到:汗滴禾下土

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/282734.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号