位置: IT常识 - 正文

Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析)

编辑:rootadmin
Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组 文章目录前言一、什么是JSON对象?二、什么是json字符串?二、什么是JSON数组?三、复杂、嵌套的json字符串四、json字符串转换4.1 简单json字符串转换为java对象4.2 简单json字符串数组转换为list数组4.3 复杂嵌套json字符串数组转换为Java对象、list数组4.3.1 示例14.3.2 示例2总结前言

推荐整理分享Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:java fastjson解析json字符串,fastjson 解析,fastjson write javabean error,fastjson解析json,java fastjson解析json字符串,fastjson write javabean error,fastjson解析json,fastjson解析json,内容如对您有帮助,希望把文章链接给更多的朋友!

在开发中经常需要将json字符串转换为java对象或者list数组,这样方便我们来使用这些数据,下面就来介绍一下怎样将json字符串和json数组转换为Java对象或者list数组。

本次使用阿里巴巴的fastjson来解析json字符串,需要添加依赖:

<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.8</version> </dependency>一、什么是JSON对象?

在大括号 {…} 中书写,包含多个 key/value(键/值)对,key 必须是字符串,value 可以是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null) 例如一个最简单的没有嵌套的JSON对象: { “name”:“Sun”, “age”:18, “site”:null }

二、什么是json字符串?

书写格式和JSON对象一样,不过类型属于String,不能直接操作其中的各个属性,需要对其进行转换。在很多前后端交互传值之类的,都以json字符串的形式进行传递。,所以对json字符串进行转换非常有必要。

二、什么是JSON数组?

JSON 数组在中括号中书写,JSON 中数组值必须是合法的 JSON 数据类型(字符串, 数字, 对象, 数组, 布尔值或 null)。 简单的JSON数组: [ “Google”, “Runoob”, “Taobao” ]

三、复杂、嵌套的json字符串

复杂的是json字符串里面嵌套json数组,这也是转换的重点,例如: { “student”: [ { “name”: “Tom”, “Grade”: 1, “age”: 11, “gender”: “M” }, { “name”: “Jerry”, “Grade”: 1, “age”: 10, “gender”: “M” } ], “classroom”: { “class1”: “room1”, “class2”: “room2” } }

在这里推荐几个比较好用的json字符串校验和格式化的网站: 链接: http://www.kjson.com/ 链接: https://www.bejson.com/

四、json字符串转换4.1 简单json字符串转换为java对象Java利用fastjson解析复杂嵌套json字符串、json数组;json字符串转Java对象,json数组转list数组(fastjson 解析)

转换语句:

//方法1 将json字符串转换为java对象Student student =JSON.parseObject(jsonStr,Student .class);//方法2 先将json字符串转换成JSONObject对象JSONObject jsonObject1 = new JSONObject(JSON.parseObject(jsonStr));//将转换后的JSONObject对象转换成Student对象Student student1 = (Student) JSONObject.toJavaObject(jsonObject1,Student.class);

示例:解析如下json字符串 { “name”: “Tom”, “Grade”: 1, “age”: 11, “gender”: “M” }

首先创建一个对应的对象:public class Student { private String name; private int grade; private int age; private String gender; //省略get、set方法} public void testJson(){ String jsonStr = "{\n" + " \"name\": \"Tom\", \n" + " \"Grade\": 1, \n" + " \"age\": 11, \n" + " \"gender\": \"M\"\n" + " }"; JSONObject jsonObject = new JSONObject(JSON.parseObject(jsonStr)); System.out.println("jsonObject:"+jsonObject); System.out.println("name:"+jsonObject.get("name")); System.out.println("Grade:"+jsonObject.get("Grade")); System.out.println("age:"+jsonObject.get("age")); //方法1 将json字符串转换为java对象 Student student =JSON.parseObject(jsonStr,Student .class); System.out.println("student:"+student); //方法2 先将json字符串转换成JSONObject对象 JSONObject jsonObject1 = new JSONObject(JSON.parseObject(jsonStr)); //将转换后的JSONObject对象转换成Student对象 Student student1 = (Student) JSONObject.toJavaObject(jsonObject1,Student.class); System.out.println("student1:"+student1); //转换为java对象之后可以利用对象的get方法来取值 System.out.println("age:"+student.getAge()); }

执行结果:

4.2 简单json字符串数组转换为list数组

使用语句:

List<Student> studentList = JSONObject.parseArray(jsonStr, Student.class);

示例:

[ { “name”: “Tom”, “Grade”: 1, “age”: 11, “gender”: “M” }, { “name”: “Jerry”, “Grade”: 1, “age”: 10, “gender”: “M” } ]

首先创建一个对应的java对象:

public class Student { private String name; private int grade; private int age; private String gender; //省略get、set方法} public void testJson(){ String jsonStr = "[\n" + " {\n" + " \"name\": \"Tom\", \n" + " \"Grade\": 1, \n" + " \"age\": 11, \n" + " \"gender\": \"M\"\n" + " }, \n" + " {\n" + " \"name\": \"Jerry\", \n" + " \"Grade\": 1, \n" + " \"age\": 10, \n" + " \"gender\": \"M\"\n" + " }\n" + "]"; List<Student> studentList = JSONObject.parseArray(jsonStr, Student.class); System.out.println("studentList:"+studentList); for (int i = 0; i < studentList.size(); i++) { System.out.println("name:"+studentList.get(i).getName()); System.out.println("Grade:"+studentList.get(i).getGender()); System.out.println("age:"+studentList.get(i).getAge()); } }

运行结果:

4.3 复杂嵌套json字符串数组转换为Java对象、list数组4.3.1 示例1

使用语句: 为4.1和4.2的嵌套使用

示例: { “student”: [ { “name”: “Tom”, “Grade”: 1, “age”: 11, “gender”: “M” }, { “name”: “Jerry”, “Grade”: 1, “age”: 10, “gender”: “M” } ], “classroom”: { “class1”: “fifth floor”, “class2”: “seventh floor” } }

首先创建对应的java对象,上面的Student对象可以重复使用,这里需要再添加两个对象,一个整体的包含Student和Classroom的对象School ,一个Classroom对象:

public class School {//这里的Student和Classroom
本文链接地址:https://www.jiuchutong.com/zhishi/295303.html 转载请保留说明!

上一篇:css 100vw、100vh出现滚动条怎么解决

下一篇:AI 工具大全(AI工具大全)

  • 电子邮件怎么注册(电子邮件怎么注册电脑)

    电子邮件怎么注册(电子邮件怎么注册电脑)

  • oppo怎样远程定位另一个手机(oppo手机如何远程操作)

    oppo怎样远程定位另一个手机(oppo手机如何远程操作)

  • vivo手机如何截屏(vivo手机如何截长图)

    vivo手机如何截屏(vivo手机如何截长图)

  • 支付宝不是好友可以聊天吗(支付宝不是好友怎么拉黑对方)

    支付宝不是好友可以聊天吗(支付宝不是好友怎么拉黑对方)

  • 怎样彻底删除拼多多小程序(怎样彻底删除拼多多物流通知)

    怎样彻底删除拼多多小程序(怎样彻底删除拼多多物流通知)

  • 滴滴可以第三次申诉吗(滴滴可以第三次预约吗)

    滴滴可以第三次申诉吗(滴滴可以第三次预约吗)

  • 抖音粉丝关注来源有显示吗(抖音粉丝关注来源怎么看)

    抖音粉丝关注来源有显示吗(抖音粉丝关注来源怎么看)

  • 手机视频播放失败如何处理(手机视频播放失败是什么原因)

    手机视频播放失败如何处理(手机视频播放失败是什么原因)

  • qq删除好友是双删吗(qq删除好友双向删除功能什么时候开始的)

    qq删除好友是双删吗(qq删除好友双向删除功能什么时候开始的)

  • ipv6在设计上具有什么特点(简述ipv6的设计目标)

    ipv6在设计上具有什么特点(简述ipv6的设计目标)

  • 微博好友圈在哪(微博好友圈在哪里看)

    微博好友圈在哪(微博好友圈在哪里看)

  • 老师能不能在钉钉同时给两个班上课(老师能不能在钉钉上批改作业呢)

    老师能不能在钉钉同时给两个班上课(老师能不能在钉钉上批改作业呢)

  • word文档的扩展名叫什么(word文档的扩展名有哪些)

    word文档的扩展名叫什么(word文档的扩展名有哪些)

  • 安卓flash怎么打开(flash player安卓版怎么用)

    安卓flash怎么打开(flash player安卓版怎么用)

  • 抖音账号封禁申诉多久(抖音账号封禁申诉失败怎么解封)

    抖音账号封禁申诉多久(抖音账号封禁申诉失败怎么解封)

  • 手机上面显示hd(手机上面显示hd1怎么关闭)

    手机上面显示hd(手机上面显示hd1怎么关闭)

  • nec是什么牌子的电脑(nec是什么牌子的电动车)

    nec是什么牌子的电脑(nec是什么牌子的电动车)

  • 桌面运维是什么(桌面运维是什么专业)

    桌面运维是什么(桌面运维是什么专业)

  • 魅族16thplus多少瓦充电(魅族16thplus多少钱)

    魅族16thplus多少瓦充电(魅族16thplus多少钱)

  • cad怎么取消加载插件(cad文件加载已取消)

    cad怎么取消加载插件(cad文件加载已取消)

  • 三星手机如何显示转接来电(三星手机如何显示来电号码归属地)

    三星手机如何显示转接来电(三星手机如何显示来电号码归属地)

  • 拼多多怎么一起付款(拼多多怎么一起下单)

    拼多多怎么一起付款(拼多多怎么一起下单)

  • Win7鼠标右击文件没有以管理员身份运行的选项?(win7鼠标点右键没反应)

    Win7鼠标右击文件没有以管理员身份运行的选项?(win7鼠标点右键没反应)

  • 如何在Win10家庭版中启用Windows沙盒功能(如何win10家庭版升级专业版)

    如何在Win10家庭版中启用Windows沙盒功能(如何win10家庭版升级专业版)

  • chatgpt对程序员会造成什么影响(程序员 cr)

    chatgpt对程序员会造成什么影响(程序员 cr)

  • 车辆使用费属于什么税收分类
  • 报销金额大于发票金额几毛钱
  • 其他综合收益包括资本公积吗
  • 增值税改革后增值税申报表怎么填写
  • 市场运营部门工作职责
  • 邀请客户参加公司会议
  • 普通发票辨别真伪
  • 房地产企业实收资本要求
  • 分类账和明细账平行登记规则
  • 签订代销合同的人有没有退货权
  • 资本公积转为实收资本会计等式
  • 营改增后常用发票报销的种类有哪些呢?
  • 代收代付如何进行账务处理?
  • 运输业过路费怎么做账
  • 营改增的税收政策
  • 公司购买住宅可以分期付款吗
  • 实际发生额大于账载金额
  • 子公司取得的投资收益
  • 分公司非独立核算是什么意思
  • 企业的利润分配顺序
  • 营改增之前的增值税
  • 企业所得税汇算清缴扣除比例
  • 公司账外废品收入怎么算
  • 移动手机网速测试
  • 其他应收款会计科目
  • 法人车无偿给公司使用合法吗
  • 不动产投资包括哪些
  • windows 11怎么用
  • win10永久激活码神key一周内
  • 收到政府补贴的装修款
  • mdn php
  • window10为什么右键就卡住
  • 固定资产计算折旧时用扣除减值吗
  • 票据贴现业务如何核算
  • 员工离职当月社保怎么扣除
  • 商票贴现 银票贴现
  • php传值和传引用的区别
  • php抓取网页图片
  • js文件合并工具
  • 大学生网页设计大赛
  • php使用什么开发工具
  • 委托第三方收款合法吗
  • python统计字符串长度
  • 将本月发生的制造费用总额按生产工人
  • 预提管理费用怎么计算
  • 大华摄像头海康威视录像机
  • 企业向银行借入长期借款,应借记
  • 以前年度未处理往来账怎么叫
  • 未经加工的
  • 转出未交增值税借方余额表示什么
  • 公司年底奖金怎么计算
  • 累计折旧的借贷方表示
  • 土地使用税退税怎么做会计分录
  • 年平均资金占用额是动态平均数吗
  • 航天信息何去何从
  • 实收资本的主要用途
  • 年度的汇算清缴
  • 企业享受所得税免税政策
  • 会计总账怎么登账
  • windons10安装
  • ubuntu卸载dpkg安装的软件
  • shcore.dll干啥用
  • nodejs 获取文件名
  • cocos2d schedule
  • 如何短时间内学会打字
  • unity手机游戏开发教程
  • vtk下载步骤
  • js如何引用
  • js用什么编写
  • centos 设置定时任务执行指定脚本的方法
  • 进入dos命令行
  • nodejs 性能优化
  • 安卓中的HTTP编程
  • python模拟ajax
  • 陕西省电子税务局
  • 回迁房子契税怎么算
  • 北京通州国税局进面分数2022
  • 青海税务发票查询
  • 怎么注册山东省采购网
  • 我国土地资源总量丰富人均不足
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设