JSON解析
2021/6/18 23:28:57
本文主要是介绍JSON解析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
JSON解析
一、什么是JSON
和XML没什么区别,都是用作数据的交互,但在与浏览器的交互中通常都用JSON,也可以用XML,不过JS对JSON的支持好很多,并且 JSON字符串比XML文档显得干净些、体积更小。
二、语法
{}:表示对象
[]:表示数组
三、解析方式
1、Gson解析
Gson:是一个简单的基于Java的库,用于将Java对象序列化为JSON,也可以把JSON转换为Java对象。它是Google开发的开源库。
为什么使用Gson:
- 标准化:Gson是由Google管理的标准化库。
- 高效:对Java标准库的可靠,快速和有效的扩展。
- 优化:库已高度优化。
- 支持泛型:为泛型提供广泛的支持。
- 支持复杂的内部类:它支持具有深继承层次结构的复杂对象。
Gson的特点:
- 易于使用:Gson API提供了一个高级外观,以简化常用用例。
- 无需创建映射:Gson API为要序列化的大多数对象提供了默认映射。
- 性能:Gson相当快并且内存占用少。它适用于大型对象或系统。
- 干净的JSON:Gson创建了干净且紧凑的JSON结果,易于阅读。
- 无依赖关系:除JDK之外,Gson库不需要任何其他库。
- 开源:Gson库是开源的;它是免费提供的。
Gson的使用:
- 【注意】:本人测试用的都是测试类,如果没有学过将方法换成main方法即可,效果一样
如果是maven工程,引入坐标即可
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency>
如果是普通的java项目,导入jar包即可
gson-2.8.5.jar
①将Java对象转为JSON
/** * 将对象转为json */ @Test void test1() { //创建student对象 Student stu = new Student("1001","张三",20); //创建Gson对象 Gson gson = new Gson(); //将对象转为json String json = gson.toJson(stu); //{"id":"1001","name":"张三","age":20} System.out.println(json); }
②将JSON转换为Java对象
/** * 将json转为对象 */ @Test void test2() { //创建Gson对象 Gson gson = new Gson(); //将json转为对象 Student student = gson.fromJson("{\"id\":\"1001\",\"name\":\"张三\",\"age\":20}", Student.class); //Student(id=1001, name=张三, age=20) System.out.println(student); }
③有特殊格式的JSON数据转为集合
/** * json中有特殊格式的数据 * {"id":"1001","name":"张三","age":20,"num":["一二三","二三四","四五六"]} */ @Test void test3() { //创建Gson对象 Gson gson = new Gson(); //将json转为map集合 Map map = gson.fromJson("{\"id\":\"1001\",\"name\":\"张三\",\"age\":20,\"num\":[\"一二三\",\"二三四\",\"四五六\"]}", Map.class); //类型是集合 class java.util.ArrayList System.out.println(map.get("num").getClass()); //[一二三, 二三四, 四五六] System.out.println(map.get("num")); }
2、FastJSON解析
FastJson是阿里巴巴的的开源库,也是用于对JSON格式的数据进行解析和打包。
特点:
- 能够支持将java bean序列化成JSON字符串,也能够将JSON字符串反序列化成Java bean。
- 速度快。
- 无其他包的依赖。
- 使用比较方便。
FastJson的使用:
如果是maven工程,引入坐标即可
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.73</version> </dependency>
如果是java工程,导入jar包即可
fastjson-1.2.73.jar
①将对象转为JSON
/** * 将对象转为json */ @Test void test1() { //创建student对象 Student stu = new Student("1001","张三",20); //将对象转为json String jsonString = JSON.toJSONString(stu); //{"age":20,"id":"1001","name":"张三"} System.out.println(jsonString); }
②将JSON转为对象
/** * 将json转为对象 */ @Test void test2() { //将json转为对象 Student stu = JSON.parseObject("{\"age\":20,\"id\":\"1001\",\"name\":\"张三\"}", Student.class); //Student(id=1001, name=张三, age=20) System.out.println(stu); }
③将JSON转为集合
/** * 将json转为集合 */ @Test void test3() { //将json格式的数组转为集合 List<String> list = JSON.parseArray("[\"一二三\",\"二三四\",\"四五六\"]", String.class); //[一二三, 二三四, 四五六] System.out.println(list); }
这篇关于JSON解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-04package.json 文件位置在哪?-icode9专业技术文章分享
- 2024-10-01Craco.js学习:从入门到实践指南
- 2024-10-01Create-React-App学习:入门与实践指南
- 2024-10-01CSS-in-JS学习:从入门到实践指南
- 2024-09-30JSX语法学习:从入门到初步掌握
- 2024-09-30Mock.js学习:入门教程与实战演练
- 2024-09-30React Hooks学习:从入门到实践
- 2024-09-30受控组件学习:React中的基础入门教程
- 2024-09-29JS定时器教程:初学者必看指南
- 2024-09-29JS对象教程:初学者的全面指南