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

  • 如何设置无线路由器信号最强(如何设置无线路由器)(如何设置无线路由器网速最快)

    如何设置无线路由器信号最强(如何设置无线路由器)(如何设置无线路由器网速最快)

  • 华为平板如何设置学生模式(华为平板如何设置返回键)

    华为平板如何设置学生模式(华为平板如何设置返回键)

  • 陌陌搜手机号可以查出对方吗(陌陌搜手机号可以搜到吗)

    陌陌搜手机号可以查出对方吗(陌陌搜手机号可以搜到吗)

  • 苹果手机备用电量怎么开启(苹果手机备用电源怎么启动)

    苹果手机备用电量怎么开启(苹果手机备用电源怎么启动)

  • 骁龙855和855plus的区别(骁龙855和855plus视频)

    骁龙855和855plus的区别(骁龙855和855plus视频)

  • 华为mate30pro微信怎么加密(华为mate30pro微信聊天删除能恢复吗?)

    华为mate30pro微信怎么加密(华为mate30pro微信聊天删除能恢复吗?)

  • 华为2g网络怎么换成4g网络(华为2g网络怎么设置成4g)

    华为2g网络怎么换成4g网络(华为2g网络怎么设置成4g)

  • 2345downloads是什么文件夹(2345下载是什么意思)

    2345downloads是什么文件夹(2345下载是什么意思)

  • 华为mate30多长厘米(华为mate30手机有多长)

    华为mate30多长厘米(华为mate30手机有多长)

  • 小米手机短信闪退解决方法(小米手机短信闪退怎么回事)

    小米手机短信闪退解决方法(小米手机短信闪退怎么回事)

  • 苹果卡槽弹不出的原因(苹果卡槽弹出来拔不动)

    苹果卡槽弹不出的原因(苹果卡槽弹出来拔不动)

  • 微信网络通信出现问题是什么意思(微信网络通信出现问题)

    微信网络通信出现问题是什么意思(微信网络通信出现问题)

  • 苹果手机发烫闪退是什么原因(苹果手机发烫闪光灯用不了)

    苹果手机发烫闪退是什么原因(苹果手机发烫闪光灯用不了)

  • 电脑上没有word怎么办(电脑上没有word文档 怎么建word)

    电脑上没有word怎么办(电脑上没有word文档 怎么建word)

  • 为什么苹果手机拍不了照片(为什么苹果手机突然黑屏打不开)

    为什么苹果手机拍不了照片(为什么苹果手机突然黑屏打不开)

  • carrier40.0是什么运营商(carrier41.0)

    carrier40.0是什么运营商(carrier41.0)

  • 天猫魔屏怎么恢复出厂设置(天猫魔屏怎么恢复彩色)

    天猫魔屏怎么恢复出厂设置(天猫魔屏怎么恢复彩色)

  • 乘车码可以刷多个人吗(乘车码可以刷多次吗)

    乘车码可以刷多个人吗(乘车码可以刷多次吗)

  • 苹果时间设置24小时制(苹果时间设置24小时怎么设置)

    苹果时间设置24小时制(苹果时间设置24小时怎么设置)

  • windows media player安装不正确(windows media player可以删除吗)

    windows media player安装不正确(windows media player可以删除吗)

  • 手机403forbidden怎么解决(手机怎么解决403)

    手机403forbidden怎么解决(手机怎么解决403)

  • 苹果Mac系统看HTML5视频教程介绍(macos怎么看)

    苹果Mac系统看HTML5视频教程介绍(macos怎么看)

  • 税务是怎么回事
  • 已开票未确认收入怎么填写纳税申报表
  • 委托加工物资的会计科目
  • 股权变更涉及哪些税种
  • 技术服务费怎么结转成本
  • 小规模购买金税盘分录
  • 会计和税法折旧年限不同如何计算终结期现金净流量
  • 预收款未开票账务处理
  • 一次性取得的租金收入
  • 政策性用房包括哪些
  • 房地产限购过程是什么
  • 买车时的保险包括哪些费用,多少钱
  • 购进货物的价税怎么算
  • 分公司可以合伙吗
  • 企业筹办期间,发生亏损,应该计算为亏损年度
  • 纳税人所在地为
  • 不抵扣的发票怎么导入做账系统
  • 劳务费按次500元
  • 一般纳税人转小规模怎么办理
  • 进项税借方有余额要怎么处理
  • 补贴收入是否缴税
  • 1697510003
  • 司机出车补助会计科目
  • 土地增值税的税率和速算扣除数
  • 如何关闭windows10自动更新
  • 什么是会计科目?为什么要设置会计科目?
  • 销售商品发生的现金折扣
  • 华为手机开热点后wlan自动关闭
  • Win11怎么设置屏幕熄灭时间
  • 股份支付费用是股权激励成本吗?
  • 公司已开工程发票怎么开
  • 便秘怎么办 女性
  • 允许税前扣除的税金
  • 事业单位体检费用标准
  • 写字楼买卖办手续
  • vue的一些面试题
  • 常用的css样式有哪些
  • thinkphp6多表关联查询
  • 公司租赁个人车辆怎么开发票
  • 经营租赁出租方的会计处理
  • 公司的注册资本是什么意思
  • 帝国cms插件编写教程
  • 固定资产处置增值税政策
  • 公司不按股权比例分红是否合法
  • 劳务分包的形式完成施工任务
  • 非限定性净资产相当于本年利润吗
  • 租金收入怎么做分录
  • 企业办税人员如何实名认证
  • 出口不报关账务处理
  • 应付职工薪酬多计提了如何冲掉
  • 纳税人在工作
  • 增资扩股对原股东的影响
  • 本月只有进项税没有销项税需要结转吗
  • 2020年账簿印花税减免政策
  • 原材料登记什么明细账
  • 卡片式账簿的优点是能够避免账页散失
  • 如何查企业是否有问题
  • mysql5.6无法启动
  • 批量更新数据库最多多少条
  • sql局部变量标识符
  • Mac怎么强制关闭窗口
  • Linux系统中的pycharm怎么打开
  • remind32.exe - remind32是什么进程 有什么用
  • windows7库功能
  • linux系统叫啥
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • jquery页面跳转的方法
  • 滑动到点击位置的快捷键
  • 全部删除文件快捷键
  • thread python
  • python中deque
  • 用yum安装samba
  • jquery 表单
  • 中国裁判文书怎么查个人案件
  • 跨区域报验和预审的区别
  • 工会经费征收范围规定
  • 个体工商户 浙江
  • 2021年个税退税条件
  • 全国增值税发票查验平台官网手机
  • 会计审计和税务服务属于什么税目
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设