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

  • 小米蓝牙耳机如何配对air2(小米蓝牙耳机如何重新配对)

    小米蓝牙耳机如何配对air2(小米蓝牙耳机如何重新配对)

  • matebook14有几个接口(matebook14有几个版本)

    matebook14有几个接口(matebook14有几个版本)

  • mate30pro指纹解锁颜色可以换吗(mate30pro指纹解锁效果)

    mate30pro指纹解锁颜色可以换吗(mate30pro指纹解锁效果)

  • pc单位代表什么(pc单位代表什么意思)

    pc单位代表什么(pc单位代表什么意思)

  • 激光打印机打印文字清楚打印图像模糊(激光打印机打印出来的纸黑乎乎的)

    激光打印机打印文字清楚打印图像模糊(激光打印机打印出来的纸黑乎乎的)

  • b站直播中心在哪(b站直播中心在哪电脑)

    b站直播中心在哪(b站直播中心在哪电脑)

  • 苹果逻辑码片坏了能更换么(苹果逻辑码片坏了会怎样)

    苹果逻辑码片坏了能更换么(苹果逻辑码片坏了会怎样)

  • 火山小视频怎么没有了(火山小视频怎么看不到火力了)

    火山小视频怎么没有了(火山小视频怎么看不到火力了)

  • 软件一直在安装中也不能删怎么办(软件一直在安装中怎么删除)

    软件一直在安装中也不能删怎么办(软件一直在安装中怎么删除)

  • 拍的照片为什么会颠倒(拍的照片为什么变成横屏的了)

    拍的照片为什么会颠倒(拍的照片为什么变成横屏的了)

  • iphone7和8的手机壳通用吗(iphone 7和iphone 8)

    iphone7和8的手机壳通用吗(iphone 7和iphone 8)

  • iphonexs基带是高通还是英特尔(苹果xs国行基带)

    iphonexs基带是高通还是英特尔(苹果xs国行基带)

  • 小米手机打开短信闪退(小米手机打开短信说首次开通网络短信)

    小米手机打开短信闪退(小米手机打开短信说首次开通网络短信)

  • 怎么发送朋友验证请求(怎么发送朋友验证微信)

    怎么发送朋友验证请求(怎么发送朋友验证微信)

  • iphone11无法连接appstore(iPhone11无法连接5Gwifi)

    iphone11无法连接appstore(iPhone11无法连接5Gwifi)

  • office装在哪个盘(office安装在哪里)

    office装在哪个盘(office安装在哪里)

  • 为什么苹果手表微信发不出去(为什么苹果手表下载不了app)

    为什么苹果手表微信发不出去(为什么苹果手表下载不了app)

  • 微信注销多久申请新号(微信注销要多久才可以重新申请)

    微信注销多久申请新号(微信注销要多久才可以重新申请)

  • ipad老是闪退怎么办(ipad老是闪退怎么解决)

    ipad老是闪退怎么办(ipad老是闪退怎么解决)

  • 怎样解决xr的3dtouch

    怎样解决xr的3dtouch

  • 如何使用打印机缩印(如何使用打印机复印)

    如何使用打印机缩印(如何使用打印机复印)

  • 华为储存卡怎么使用(华为储存卡怎么储存东西)

    华为储存卡怎么使用(华为储存卡怎么储存东西)

  • 支付指纹在哪里设置(支付指纹在哪里找)

    支付指纹在哪里设置(支付指纹在哪里找)

  • 抖音原手机号停用了,怎么更换(抖音原手机号停机了怎么换绑)

    抖音原手机号停用了,怎么更换(抖音原手机号停机了怎么换绑)

  • 荣耀v20游戏助手在哪里(华为荣耀v20游戏助手怎么打开)

    荣耀v20游戏助手在哪里(华为荣耀v20游戏助手怎么打开)

  • p20录屏在哪里(p20屏幕录制在哪里)

    p20录屏在哪里(p20屏幕录制在哪里)

  • 最高超频纪录的主板是什么(目前超频最高几ghz)

    最高超频纪录的主板是什么(目前超频最高几ghz)

  • 股东个人财产转让协议
  • 股东向公司借款超过一年不还
  • 结转应交增值税到未交增值税
  • 居民转供电收费标准
  • 为什么差额征税有的可以开专票有的只能开普票
  • 员工成本是员工薪资的多少倍
  • 长期股权投资成本法发放现金股利
  • 投资款印花税的税率是多少啊
  • 变更办税人需要原办税人去吗
  • 关联方转移定价注意问题
  • 所得税退税需要多久
  • 高新企业减免所得税政策
  • 购买办公桌椅属于什么费用
  • 外币借款利息汇兑差额计算公式
  • 营业执照原件丢失后果
  • 海运费付款方式
  • 股权无偿赠与子女怎么办理手续
  • 电池消费税征税范围
  • 企业代扣员工社保怎样做分录
  • 借用下属单位人员违反什么政策
  • 去年的成本如何调整
  • 爱荷华州的首府
  • PHPfor循环语句10的阶乘
  • 如何申请公积金装修房子
  • 什么是资产负债率,如何计算
  • vue引入echarts柱状图
  • 浏览器下载量排名第一的是
  • php图片链接
  • 处置固定资产增值税怎么计算
  • 存货的期末计价方法是遵循哪个信息质量原则
  • 补充养老保险的特点
  • 老生常谈php中传统验证与thinkphp框架(必看篇)
  • 税控盘干嘛用
  • html中的标签有哪些
  • 哪些项目计入其他应收款
  • mlp是啥啊
  • gpt3 plug
  • php微信分享源码
  • 培训机构先收费后付费
  • 政府补贴什么时候开始的
  • vue连接webapi
  • 应收款超过多久未收回可界定为损失
  • 有限责任公司分类
  • 职工教育经费的比例是多少
  • 筹建期间的费用计入什么费用
  • sql查询使用临时表
  • 材料暂估入库时需要考虑增值税进项税吗
  • 电子产品对外加工
  • 培训学校的主营业务是什么
  • 报表中应交税金怎么算
  • 会计调整以前年度遗留问题查不出来说明怎么写
  • 固定资产报废会计科目处理
  • 仓库货架应该计入什么科目
  • 事业单位企业所得税汇算清缴怎么做
  • 不含税价换算成含税价怎么算
  • 简述什么是实收资本
  • 固定资产清理是资产吗
  • mysql中的字符串函数
  • sqlserver isnull在数据库查询中的应用
  • sql group by语句
  • centos 安装方法
  • 虚拟机怎么不能玩游戏
  • win32k.sys是什么
  • 输入法不显示怎么处理
  • win7j
  • cocos2dx AudioEngine初体验,音效播放结束判断测试
  • 使用jquery
  • opengl常用函数库
  • android怎么学
  • 在指定目录查找的文件
  • 命令行批处理文件
  • unity公路制作
  • unity如何动态刷新滚动列表
  • jquery渐变效果
  • win10的安装方式有哪些
  • js 队列
  • 国家税务局公告2018年第28号
  • 顺丰快递的开票历史如何删除
  • 青岛怎样网上交医保
  • 中国浙江到英国伦敦多少公里
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设