json的Java解析
2021/7/22 14:35:54
本文主要是介绍json的Java解析,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
目录
- JSON简介
- 样例
- 对象格式
- 数组格式
- Java解析JSON
- fastjson
- 对象转json
- json转对象
- gson
- 对象转json
- json转对象
JSON简介
- JSON: JavaScript Object Notation JS对象简谱,是一种轻量级的数据交换格式
样例
{ "persons": [ { "person": { "name": "张三", "age": 18, "hobby": [ "游泳", "音乐" ] } }, { "person": { "name": "李四", "age": 20 } } ] }
对象格式
一个对象,由一个大括号表示
括号中 描述对象的属性与函数,通过键值对来描述对象的属性与函数
格式:
键与值之间使用冒号连接, 多个键值对之间使用逗号分隔
键值对的键应使用引号包围(JS中,不加引号可以解析,但Java会报错)
键值对的值,可以是JS中的任意类型的数据
数组格式
使用中括号表示数组
在JSON格式中可以与对象互相嵌套
[元素1,元素2…]
Java解析JSON
常用的解析工具有两个:fastjson、gson
以上两种都需要引入第三方jar包,使用简便
- 设置教师类,用于测试JSON相关解析
public class Teacher { private String id;// 序号 private String name;// 姓名 private int age;// 年龄 private String[] subjects;// 任课科目 // 为缩减篇幅,构造器、getter/setter、toString等方法不展示 }
fastjson
- 引入jar包,本文使用的是包为:fastjson-1.2.70.jar
- 需自行下载jar包,或使用目前最新的maven依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.76</version> </dependency>
对象转json
// 新建对象 Teacher t = new Teacher("123", "张三", 48, new String[]{"数学", "地理", "历史"}); // 解析为JSON字符串 String json = JSON.toJSONString(t); // 输出JSON字符串 System.out.println(json);
执行结果:{“age”:48,“id”:“123”,“name”:“张三”,“subjects”:[“数学”,“地理”,“历史”]}
json转对象
// json字符串 String json = "{\"age\":48,\"id\":\"123\",\"name\":\"张三\",\"subjects\":[\"数学\",\"地理\",\"历史\"]}"; // json字符串转为对象 Teacher teacher = JSON.parseObject(json, Teacher.class); // 输出 System.out.println(teacher);
执行结果:Teacher{id=‘123’, name=‘张三’, age=48, subjects=[数学, 地理, 历史]}
- fastjson的使用很简单,通过方法名就能理解并使用
- 下面是将字符串转为JSON对象的方法
// 将json字符串转为JSONObject // JSONObject的使用近似于Map JSONObject jsonObject = JSON.parseObject(jsonStr); // 将json字符串转为JSONArray // JSONObject的使用近似于List JSONArray jsonArray = JSON.parseArray(jsonStr); // 还有很多相关方法都见名知意,不多赘述
gson
- gson的使用与fastjson大同小异,都有相似的功能
- 引入jar包,本文使用的是包为:gson-2.8.6.jar
- 需自行下载jar包,或使用目前最新的maven依赖
<dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.7</version> </dependency>
对象转json
// 新建对象 Teacher t = new Teacher("123", "张三", 48, new String[]{"数学", "地理", "历史"}); // 解析为JSON字符串 String json = new Gson().toJson(t); // 输出JSON字符串 System.out.println(json);
执行结果:{“id”:“123”,“name”:“张三”,“age”:48,“subjects”:[“数学”,“地理”,“历史”]}
json转对象
// json字符串 String json = "{\"age\":48,\"id\":\"123\",\"name\":\"张三\",\"subjects\":[\"数学\",\"地理\",\"历史\"]}"; // json字符串转为对象 Teacher teacher = new Gson().fromJson(json, Teacher.class); // 输出 System.out.println(teacher);
执行结果:Teacher{id=‘123’, name=‘张三’, age=48, subjects=[数学, 地理, 历史]}
- 在开发当中,json十分常用,经常会使用json格式的数据进行前后端的交互。网上有很多json的在线工具(解析、视图、格式化等),方便开发使用
这篇关于json的Java解析的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-10-05小米13T Pro系统合集:性能与摄影的极致融合,值得你升级的系统ROM
- 2024-10-01基于Python+Vue开发的医院门诊预约挂号系统
- 2024-10-01基于Python+Vue开发的旅游景区管理系统
- 2024-10-01RestfulAPI入门指南:打造简单易懂的API接口
- 2024-10-01初学者指南:了解和使用Server Action
- 2024-10-01Server Component入门指南:搭建与配置详解
- 2024-10-01React 中使用 useRequest 实现数据请求
- 2024-10-01使用 golang 将ETH账户的资产平均分散到其他账户
- 2024-10-01JWT用户校验课程:从入门到实践
- 2024-10-01Server Component课程入门指南