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

  • 天语耳机使用教程(天语 e500)(天语耳机质量好不好)

    天语耳机使用教程(天语 e500)(天语耳机质量好不好)

  • 小米穿戴怎么解除绑定(小米穿戴怎么解绑手环)

    小米穿戴怎么解除绑定(小米穿戴怎么解绑手环)

  • 天猫精灵添加设备在哪里(天猫精灵添加设备失败怎么办)

    天猫精灵添加设备在哪里(天猫精灵添加设备失败怎么办)

  • 微信金币怎么赠送给好友(微信支付里面的金币怎么赠送好友)

    微信金币怎么赠送给好友(微信支付里面的金币怎么赠送好友)

  • 如何设置无线路由器(如何设置无线路由器信号穿墙模式)

    如何设置无线路由器(如何设置无线路由器信号穿墙模式)

  • 返送中是什么意思(反送zhong什么意思)

    返送中是什么意思(反送zhong什么意思)

  • 苹果手表能连华为手机吗(苹果手表能连华为吗)

    苹果手表能连华为手机吗(苹果手表能连华为吗)

  • 手机开热点ip地址一样吗(手机开热点ip地址会不会变)

    手机开热点ip地址一样吗(手机开热点ip地址会不会变)

  • 华为蓝牙耳机怎么调音量(华为蓝牙耳机怎么样)

    华为蓝牙耳机怎么调音量(华为蓝牙耳机怎么样)

  • vray渲染卡住不动(vray渲染突然变慢)

    vray渲染卡住不动(vray渲染突然变慢)

  • 为什么笔记本摄像头黄黄的(为什么笔记本摄像头打开是黑的)

    为什么笔记本摄像头黄黄的(为什么笔记本摄像头打开是黑的)

  • 苹果x和苹果11尺寸对比(苹果x和苹果11比)

    苹果x和苹果11尺寸对比(苹果x和苹果11比)

  • 为什么手机总是频繁欠费(为什么手机总是自动关机重启)

    为什么手机总是频繁欠费(为什么手机总是自动关机重启)

  • 苹果平板插卡版和wifi版有什么区别(苹果平板插卡版可以用wifi吗)

    苹果平板插卡版和wifi版有什么区别(苹果平板插卡版可以用wifi吗)

  • 苹果为什么卸载不了app(苹果为什么卸载的软件下载不了)

    苹果为什么卸载不了app(苹果为什么卸载的软件下载不了)

  • wifi初始密码一般多少(wifi初始密码忘了怎么办)

    wifi初始密码一般多少(wifi初始密码忘了怎么办)

  • 苹果开发者账号有什么用(苹果开发者账号购买)

    苹果开发者账号有什么用(苹果开发者账号购买)

  • p30pro尺寸(p30pro尺寸长宽高)

    p30pro尺寸(p30pro尺寸长宽高)

  • 手机面对面快传怎么用(苹果手机面对面快传)

    手机面对面快传怎么用(苹果手机面对面快传)

  • 手机hd是什么意思啊收费吗(oppo手机hd是什么意思)

    手机hd是什么意思啊收费吗(oppo手机hd是什么意思)

  • 荣耀v20是什么马达(荣耀v20是什么机身)

    荣耀v20是什么马达(荣耀v20是什么机身)

  • rgb风扇怎么接主板(rgb风扇接主板后还要连接电源吗)

    rgb风扇怎么接主板(rgb风扇接主板后还要连接电源吗)

  • qq影音如何合并视频(qq影音怎么合并视频片段)

    qq影音如何合并视频(qq影音怎么合并视频片段)

  • 尿急、尿频、尿痛怎么办(图文)(尿急尿频尿不尽吃什么药效果好)

    尿急、尿频、尿痛怎么办(图文)(尿急尿频尿不尽吃什么药效果好)

  • 前端最新2022面试题(JS)(最新前端技术)

    前端最新2022面试题(JS)(最新前端技术)

  • 加工企业税收优惠政策
  • 息税前利润变动率的计算公式
  • 小规模销售产品会计分录
  • 现金日记账1月怎么算
  • 资产盘点的步骤是什么,需要注意哪些细节
  • 临时税务登记可以开发票吗
  • 销售积分税务处理的特点
  • 资产损失申报扣除
  • 现金折扣销售退回的会计分录
  • 简易征收应纳税额计算
  • 收到货物记账凭证
  • 企业要怎样才能发挥其在实现生态产品价值过程中的作用
  • 转让财产收入计入哪个科目
  • 营改增前的工程款现在怎么开票
  • 企业所得税免税收入和不征税收入
  • 管家婆已过账销售单如何删除
  • 摊销生产车间负担的保险费
  • 已开票怎么做坏账处理
  • 总杠杆系数的计算公司
  • 汽车运输增值税专用发票多少税点
  • 民间非营利组织会计制度最新版
  • 投资款需要缴纳增值税吗
  • 支票票号都是第二行吗
  • 降低增值税税率对消费者的影响有哪些
  • mac如何连接电脑
  • 鸿蒙系统智慧场所在哪
  • 接入设备检测
  • php输出当月日历
  • php array_splice
  • 固定资产清理的会计科目处理
  • laravel技巧
  • php 强类型
  • 售后回购方式销售商品如何确认收入
  • 免费镜像翻转软件
  • 新企业会计准则是哪一年颁布的
  • 钢管扣件租赁公司社会实践报告怎么写范文
  • 衍生工具主要用途
  • 减税性质代码及名称农业
  • thinkphp自定义标签
  • php判断数组是否为空的函数
  • 电子发票重开之前的是不是就没用了
  • lstm crf
  • php获取ua
  • 残保金员工人数怎么算
  • 社会团体税收政策
  • 其他资本公积如何转出
  • 印花税没交会怎么样
  • java中同步有两种方法
  • mysql5.7.35安装配置教程
  • 有没有网上学电脑的
  • 建筑总承包分包单位可以是市政总承包吗
  • 框架合同的印花税
  • 退还留抵税额政策解读
  • 纳税申报相关操作有哪些
  • 转让技术所有权是其他业务收入吗
  • 会计账簿错误处理方式
  • 红冲暂估原材料如何做会计分录
  • 差额征税发票可以税前扣除吗
  • 连续三个月发烧怎么回事
  • 现金流量补充表的应付项目是什么
  • 什么是批发零售市场
  • 人工费的发票税率怎么算
  • 代扣代缴个人所得税分录
  • 会计往来账怎么用excel做更快
  • 存货周转率多少属正常范围
  • mac系统指令集
  • linux搭建gitlab
  • 提高生殖能力
  • ubuntu 20.04.1 lts
  • windows xp能装微信吗
  • linux 测试工具
  • win7开机没反应怎么办
  • win8系统如何关闭杀毒系统
  • 安装音乐库
  • unity editor window
  • windows下为啥没有观看电视的软件
  • unity3D游戏开发
  • jq 使用
  • 杭州电子税务局注册流程
  • 外出经营需要交哪些税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设