网站首页 > java教程 正文
本期干活分享腾讯课堂coding学院大咖丁骥为大家进行,快快学习起来了!
一、原始的JSON解析方式
构造JSON对象 -> 判断JSON对象是否包含某个元素 -> 获取JSON对象里面的元素。
元素很多的话,解析代码会写的很累。且不同内容的JSON对象要一一编写解析代码。
二、进阶的JSON解析方式
使用第三方JSON库进行解析,如Gson、Jackson、FastJson等。
以Gson为例,简单介绍一下其解析方法:
1、先定义JSON数据对应的Entity类。
2、 解析JSON数据。
相比于原始的解析方式,方便了些,但还需要程序员自己实现Entity类,且无法解析复杂的JSON体,如包含JSONArray和JSONObject的JSON体。
三、懒人的JSON解析方式
1、 JSON数据对应的Entity类,一行代码直接生成。
jsonStr的内容:
生成的.java文件如下:
2. JSON数据的解析,一行代码直接完成解析。
验证代码:
运行后打印:解析OK!
相比于Gson,懒人的JSON解析方式不需要程序员自己编写entity类,且支持复杂的JSON体解析,另外通用的解析方式,支持不同内容的JSON体的解析。
四、懒人的JSON解析方式的实现:
1、JSON数据对应的Entity类的自动生成:
深度遍历,每一个JSONObject生成一个类,使用FreeMaker生成.Java文件。
JSONObject对应Entity类的生成规则:
基础数据类型对应基础FiledType,JSONObject对应一个类,JSONArray对应Object[]。
JSONArray里面的JSONObject对应Entity类的生成规则:
JSONArray里面的JSONArray里面的JSONObject的Entity类生成规则:
2、JSON数据的自动解析:
通过反射的方式获取Entity类的fields,然后深度遍历赋值。
只要去做,
总有可能。
先转发,关注“腾讯课堂coding学院”
就是对我们最好的支持!
温馨提醒:
1、微信端搜索课程
在“腾讯课堂”官方微信里,回复你想学习的内容,即可快速找到你期待的课程哦!
2、学习方式
【电脑端】
*可通过登录ke.qq.com进入学习;
*可通过windows PC版QQ客户端面板上的课堂入口进入学习。
【移动端】
*下载APP “腾讯课堂” 即可进入学习;
*关注微信公众号或者手Q公众号“腾讯课堂”,进入学习。
(注:微信和QQ的课程报名信息独立,登录时请选择对应的登录方式)
猜你喜欢
- 2024-10-28 JavaScript获取json中key所对应的value值的简单方法
- 2024-10-28 为什么JSON.parse会损坏大数字,如何解决这个问题?
- 2024-10-28 深入浅出Json-Schema-Validation(深入浅出stm)
- 2024-10-28 这几个JSON 工具,你是不是错过了
- 2024-10-28 深入解析 JSONPath:从入门到精通(jsonpath解析json)
- 2024-10-28 《Servlet》第18节:HttpServletResponse响应JSON和HTML内容
- 2024-10-28 netty系列之:netty中的核心解码器json
- 2024-10-28 Android JSON(android json to room)
- 2024-10-28 JAVA实现生成多层JSON格式数据(含源码——三层样例)
- 2024-10-28 一个SQLServer中JSON文档型数据的查询问题
你 发表评论:
欢迎- 最近发表
-
- Java常量定义防暴指南:从"杀马特"到"高富帅"的华丽转身
- Java接口设计原则与实践:优雅编程的艺术
- java 包管理、访问修饰符、static/final关键字
- Java工程师的代码规范与最佳实践:优雅代码的艺术
- 编写一个java程序(编写一个Java程序计算并输出1到n的阶乘)
- Mycat的搭建以及配置与启动(mycat部署)
- Weblogic 安装 -“不是有效的 JDK Java 主目录”解决办法
- SpringBoot打包部署解析:jar包的生成和结构
- 《Servlet》第05节:创建第一个Servlet程序(HelloSevlet)
- 你认为最简单的单例模式,东西还挺多
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)