位置: 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工具大全)

  • vivox70怎么取卡槽(vivox7的手机卡怎么取出)

    vivox70怎么取卡槽(vivox7的手机卡怎么取出)

  • 高德地图如何上传自己的店铺位置(高德地图如何上报路况)

    高德地图如何上传自己的店铺位置(高德地图如何上报路况)

  • 小米10移动权益版手机什么意思(小米移动权益版手机是什么意思啊)

    小米10移动权益版手机什么意思(小米移动权益版手机是什么意思啊)

  • 微博提示您无法使用红包(微博提示无法与帮助程序连接)

    微博提示您无法使用红包(微博提示无法与帮助程序连接)

  • qq没消息却显示1(qq没消息却显示1个人)

    qq没消息却显示1(qq没消息却显示1个人)

  • 淘宝漏洞单是什么意思(淘宝漏洞单群在哪里可以找到)

    淘宝漏洞单是什么意思(淘宝漏洞单群在哪里可以找到)

  • win10word无法创建工作文件(word无法创建新文档onedrive)

    win10word无法创建工作文件(word无法创建新文档onedrive)

  • 微信收到红包怎么退还(微信收到红包怎么退还给人家)

    微信收到红包怎么退还(微信收到红包怎么退还给人家)

  • 微信免密支付在哪里关(微信分付在哪里开通)

    微信免密支付在哪里关(微信分付在哪里开通)

  • 苹果手机内存升级(苹果手机内存升级256g多少钱)

    苹果手机内存升级(苹果手机内存升级256g多少钱)

  • 电脑b站怎么下载视频(电脑b站怎么下载视频缓存)

    电脑b站怎么下载视频(电脑b站怎么下载视频缓存)

  • 打印机编号怎么查看(打印机编号怎么打印)

    打印机编号怎么查看(打印机编号怎么打印)

  • soul怎样搜索一个人(soul上怎么搜索)

    soul怎样搜索一个人(soul上怎么搜索)

  • 微信商品橱窗怎么做(微信商品橱窗怎么开通小程序)

    微信商品橱窗怎么做(微信商品橱窗怎么开通小程序)

  • 手机号码怎么弄到新手机上(手机号码怎么弄空号)

    手机号码怎么弄到新手机上(手机号码怎么弄空号)

  • 酷我音乐里怎么录歌(酷我音乐里怎么取消自动续费)

    酷我音乐里怎么录歌(酷我音乐里怎么取消自动续费)

  • 没有网微信运动计步吗(没有网微信运动步数更新吗)

    没有网微信运动计步吗(没有网微信运动步数更新吗)

  • 亚马逊平台如何开店(亚马逊如何操作步骤)

    亚马逊平台如何开店(亚马逊如何操作步骤)

  • 荣耀10多少瓦快充(荣耀多少瓦快充)

    荣耀10多少瓦快充(荣耀多少瓦快充)

  • 苹果型号mt是什么版本(iphone型号mt开头)

    苹果型号mt是什么版本(iphone型号mt开头)

  • 老板如何设置店员接受微信收款语音通知(如何设置老板键)

    老板如何设置店员接受微信收款语音通知(如何设置老板键)

  • win10445端口关闭方法是什么(win10关闭端口号)

    win10445端口关闭方法是什么(win10关闭端口号)

  • 微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!(微信公众号实名认证怎么更改)

    微信公众号 - 实现 H5 网页在微信内置浏览器中下载文件,可预览和下载 office 文件(doc / xls / ppt / pdf 等)适用于任何前端技术栈网站,兼容安卓和苹果系统!(微信公众号实名认证怎么更改)

  • Chat GPT5的主要介绍(gpts)

    Chat GPT5的主要介绍(gpts)

  • 哪些情况下可以无偿提供法律援助
  • 建筑业如何分项目核算
  • 资产现金流量收益率计算例题
  • 公司帮员工全额缴纳五险一金
  • 入资款印花税怎么计算
  • 电信发票为什么分开开
  • 收到房屋租金税率
  • 运费单独开票的账务处理
  • 价外费用的判断标准
  • 代开发票的小微企业如何享受税收优惠
  • 单位和职工个人缴费基数如何确定的规定
  • 息税折旧摊销前利润减去所得税
  • 银行存款收款凭证
  • 固定资产计提折
  • 购进固定资产汽车该如何进行会计处理?
  • 网络招聘合同
  • 发票章丢失风险大吗
  • 税务小规模定律是什么意思
  • 财税()
  • 给员工的福利要缴税吗
  • 退税入其他收益需要再缴税吗
  • 经营租赁固定资产折旧计入什么科目
  • 小微企业季度所得税怎么计算
  • 出差住宿费普票可以抵扣进项税吗为什么
  • 企业的财产清查属于帐证核对?
  • 公司的资本成本取决于投资人的必要报酬率
  • 合并报表的编制主体
  • 合并报表中营业利润不等于
  • 利润分成的会计分录
  • Win10系统cpu性能如何调高 Win10把cpu性能调到极佳的方法
  • 税务局手续费返还
  • 预付加油充值卡可以报销吗
  • 固定资产的处理方法
  • 备用金包括哪些大类
  • win10右键个性化打不开 没有与之关联程序
  • 所得税以前年度亏损
  • 怎样提高网速呢知乎
  • 公司和个人分别交税一部分吗
  • 收益类账户的会计分录
  • 企业年金缴纳标准400什么意思啊
  • 常用的php操作mysql的函数有哪些
  • 了解的反义词
  • 留抵税额进项构成比例
  • 阿布鲁佐的特点
  • php 模拟post
  • 个人博客登录入口
  • k8s控制器模式
  • vue前端常见面试题
  • phpwebsocket框架
  • 中央空调的维护和保养
  • 分配现金股利的分录
  • 存货的账务处理分录
  • java多线程经典案例
  • 织梦如何添加浮动广告
  • 主营业务收入含义
  • 合同资产科目包含增值税吗
  • 无退税产品出口征税
  • 购买办公用品没有发票可以入账吗
  • 普通发票的开具规定是?
  • sql server2005怎么打开
  • 一整天的时间从几点到几点
  • 材料的采购成本包括
  • 首次购买金税盘及服务费的账务处理
  • 公司的长期股权投资该如何做账
  • 应收账款坏账准备借贷方向
  • mysql输入密码命令
  • sql server如何查询
  • 安装sql server需要注意什么
  • windows xp简单操作教程
  • win8 更改电脑设置
  • ubuntu怎样
  • win10预览版和正式版区别
  • win8.1无法启动
  • rhel-server
  • pavsrv51.exe - pavsrv51是什么进程 有什么用
  • 5.2光源
  • jquery实现点击按钮
  • Javascript this 关键字 详解
  • javascript怎么学
  • 常州税务局举报网站
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设