Java 实现JSON字符串、JSON对象和Java对象的相互转换(fastjson)

Java 实现字符串String转换成json Java 实现字符串String转换List(JSONArray格式)Java 实现字符串String转换json(JSON格式) 阅读详情

一、准备工作

定义三个json字符串用于以下测试:

//json字符串-简单对象
String jsonStr = "{\"studentName\":\"张三\",\"studentAge\":18}";
//json字符串-数组类型
String  jsonArrStr = "[{\"studentName\":\"张三\",\"studentAge\":18},{\"studentName\":\"李四\",\"studentAge\":17}]";
//json字符串-复杂对象
String  complexJsonStr= "{\"teacherName\":\"李寻欢\",\"teacherAge\":30,\"course\":{\"courseName\":\"武术\",\"code\":110},
                     \"students\":[{\"studentName\":\"张三\",\"studentAge\":18},{\"studentName\":\"李四\",\"studentAge\":19}]}";

二、json字符串、json对象、java对象的转换方法

1.JSON字符串到JSON对象的转换

(1)json字符串-简单对象与JSONObject之间的转换

JSONObject jsonObj = JSON.parseObject(jsonStr);

(2)json字符串-数组类型与JSONArray之间的转换

JSONArray jsonArray = JSON.parseArray(jsonArrStr);
//遍历JSONArray方法1
for(int i = 0; i < jsonArray.size(); i++){
   JSONObject jsonObj = jsonArray.getJSONObject(i); 
}
//遍历JSONArray方法2
for(Object obj : jsonArray){
    JSONObject jsonObject = (JSONObject) obj;
}

(3)json字符串-复杂对象与JSONObject之间的转换

JSONObject jsonObj = JSON.parseObject(complexJsonStr);
//取出复杂对象中各项内容
String teacherName = jsonObj.getString("teacherName");
Integer teacherAge = jsonObj.getInteger("teacherAge");
JSONObject course = jsonObj.getJSONObject("course");
JSONArray students = jsonObj.getJSONArray("students");

2.JSON对象到JSON字符串的转换

JSONObject jsonObj = new JSONObject();
//JSONObject到JSON字符串的转换
String jsonStr = jsonObj.toJSONString();

3.JSON字符串到Java对象的转换

JSON字符串与JavaBean之间的转换建议使用TypeReference类

(1)json字符串-简单对象与Java对象之间的转换

// 方法1
Student student = JSON.parseObject(jsonStr , new TypeReference<Student>() {});
// 方法2
Student student = JSON.parseObject(jsonStr , Student.class);

(2)json字符串-数组与Java对象之间的转换

ArrayList<Student> students = JSON.parseObject(jsonArrStr, new TypeReference<ArrayList<Student>>() {});
for (Student student : students) {
   System.out.println(student.getStudentName()+":"+student.getStudentAge());
}

(3)json字符串-复杂对象与Java对象之间的转换

Teacher teacher = JSON.parseObject(complexJsonStr, new TypeReference<Teacher>() {});
//获取teacher中的内容
String teacherName = teacher.getTeacherName();
Integer teacherAge = teacher.getTeacherAge();
Course course = teacher.getCourse();
List<Student> students = teacher.getStudents();

4.Java对象到JSON字符串的转换

Teacher teacher = new Teacher();
String jsonStr = JSON.toJSONString(teacher);

5.Java对象到JSON对象的转换

String jsonStr= JSON.toJSONString(student);
JSONObject jsonObj = JSON.parseObject(jsonStr);

6.JSON对象到Java对象的转换

# 方法1,先转换为json字符串,再使用parseObject
String jsonStr = jsonObj.toJSONString();
Student stu = JSON.parseObject(jsonStr,new TypeReference<Student>() {});
# 方法2,直接使用toJavaObject
Student stu = JSON.toJavaObject(jsonObj, Student.class);

例子

1.json字符串转化为java实体类 (parseObject)

ApprovalVo approvalVo = JSON.parseObject(str, ApprovalVo.class);
// str == json字符串
// ApprovalVo == 实体类

2.json字符串转化为list对象 (parseArray)

String str2 = "[{'password':'123123','username':'zhangsan'},{'password':'321321','username':'lisi'}]";
List<User> users = JSON.parseArray(jsonStr2, User.class);

3.json字符串转化为复杂java对象 (parseObject)

//  复杂对象->>>>对象中嵌套对象的
String str3 = "{'name':'userGroup','users':[{'password':'123123','username':'zhangsan'},{'password':'321321','username':'lisi'}]}";
UserGroup userGroup = JSON.parseObject(jsonStr3, UserGroup.class);
  1. 把实体类转化成json字符串
String str = JSON.toJSONString(ApprovalVo);
  1. 把json字符串转化成JSONObject
 String jsonStr = "{\"school\":\"商职\",\"sex\":\"男\",\"name\":\"wjw\",\"age\":22}";
 JSONObject jsonObject = JSONObject.parseObject(jsonStr);
 System.out.println(jsonObject.getString("name"));
 System.out.println(jsonObject.getInteger("age"));

参考:
https://zhuanlan.zhihu.com/p/476747417
https://blog.51cto.com/u_15281317/3008066

全网详细解说:java对象转JSONObject和JSONString、JSONObject转java对象和JSONString,JSONString转JSONObject和java对象 阅读详情

相关推荐

java解析与生成json数据的四种方式,比如将json字符串转为json对象或json对象转为json字符串

java解析json数据的四种方式将json字符串转为json对象或json对象转为json字符串,比如传统方式,Jackson的方式,Gson的方式以及Fastjson的方式。

念兮为美 7075

Java fastjson的json转化

jsonStr为JSON格式字符串,Employee 为要转为的对象。它们都可以将json格式字符串转为实体对象,他们的区别是。替代方法,先转为Map,然后直接通过get取值。直接可以将json格式字符串转为实体对象,而。这个方法会出现一个问题,某些值会丢失。需要先将json格式字符串转为。

while(life)++; 4万+

【Java系列】FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

【Java系列】FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换

weixin_54707168的博客 460

Java用fastjson 实现JSON字符串、JSON对象和Java对象的相互转换

Fastjson是一个强大的库,可以简化Java对象与JSON之间的转换。它的速度快、使用简单、功能强大,非常适合在Java项目中处理JSON数据。

果酱 の 博客 2124

Keil调试技巧:3种方法查看Cortex-M4的SCB寄存器(含CPUID内存映射解析)

本文详细介绍了在Keil MDK中查看Cortex-M4内核SCB寄存器的三种实战方法:使用Watch窗口进行符号化观察、通过Memory窗口直接查看物理内存映射,以及利用SFR寄存器浏览器解析位域信息。文章重点解析了CPUID寄存器的内存映射地址(0xE000ED00)及其位域含义,帮助开发者深入理解处理器身份识别与底层调试技巧,提升嵌入式系统调试效率。

h6i7j8的博客 569

大智慧L2实时api接口的逐笔委托功能执行代码分享

用过l2行情接口的投资者应该都了解大部分的接口都是有逐笔委托功能的,那么大智慧L2实时api接口也有着很强大的逐笔委托功能,投资者可以通过这个逐笔委托功能可以看到一个股票的每天出现的全部委托指令,那么在这个逐笔委托功能里包含了委托价格、委托时间、委托量和委托方向四个要素!那么接下来小编就分享一下大智慧L2实时api接口的逐笔委托功能执行代码!那么在这里提个醒:投资者可以在大智慧L2实时api接口进行设置过滤,在逐笔委托列表里,就仅仅只会显示超过设置委托量或委托额的委托单,而不再显示小单。

Qq_2037696191的博客 3732

java对象转json fastjson_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换...

fastJson对于json格式字符串的解析主要用到了一下三个类:JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。JSONObject:fastJson提供的json对象。JSONArray:fastJson提供json数组对象。我们可以把JSONObject当成一个Map来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象...

weixin_30767863的博客 243

AIR780E二次开发点灯(LuatOS)

Air780E的LuatOS点灯教程,二次开发教程,可用于所有ec618平台,无需SDK

rootuseres的博客 1万+

fastjson处理json字符串成java对象之前的相互转换

1 这段代码主要是利用fastjson的封装方法处理json字符串成java对象之前的相互转换 package com.neo.util; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.serializer.JSONLibDataFormatSerializer

胡杰的专栏 419

Python爬虫之爬取并下载哔哩哔哩视频

它可以爬取并下载视频文件和音频文件!亲自使用过,太好用了。

2301_80124151的博客 3万+

INCA文件刷写全流程:从ES581驱动安装到XCP协议实战(附避坑指南)

本文详细解析INCA文件刷写的全流程操作,从ES581驱动安装到XCP协议配置,提供实战经验与避坑指南。涵盖A2L文件校验、工作区优化、XCP参数调优及自动化刷写技巧,帮助工程师高效完成ECU开发中的文件刷写任务。

egg99的博客 943

json java对象 简书_FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换...

fastJson对于json格式字符串的解析主要用到了一下三个类:JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。JSONObject:fastJson提供的json对象。JSONArray:fastJson提供json数组对象。我们可以把JSONObject当成一个Map来看,只是JSONObject提供了更为丰富便捷的方法,方便我们对于对象...

weixin_31681589的博客 98

告别环境报错:用Pycharm一站式搞定Superset 3.0.0二次开发环境(Windows/Mac通用)

本文详细介绍了如何使用Pycharm一站式搭建Apache Superset 3.0.0的二次开发环境,涵盖Windows和Mac平台。通过虚拟环境配置、依赖管理、数据库初始化及前后端协同开发等步骤,帮助开发者高效解决环境报错问题,提升开发效率。特别适合需要进行Superset二次开发的工程师参考。

weixin_42549496的博客 316

JAVA使用com.alibaba.fastjson.JSON实现json对象、json字符串、对象之间相互转换

一、对象转为转为json字符串 二、json字符串转为json对象 三、json字符串转为对象 四、将无泛型集合转为指定类型集合

qq_38299413的博客 1370

深入解析SSD报错“READ FPDMA QUEUED”:从诊断到修复全流程

本文深入解析了SSD报错“READ FPDMA QUEUED”的含义、成因与全流程解决方案。该错误通常指示硬盘硬件或健康状态问题。文章详细介绍了如何通过系统日志定位错误、解读关键的S.M.A.R.T.健康报告(重点关注重分配扇区计数等指标),并逐步进行硬件排查(如更换SATA数据线)、软件修复与数据抢救,最终指导用户根据诊断结果做出维修或更换SSD的决策。

weixin_29233333的博客 398

100天精通Python(数据分析篇)——第53天:初识pandas模块_基础介绍

一、初始pandas 1. 什么是pandas? 2. 为什么要学习pandas? 3. pandas的优势 4. 下载安装pandas 二、Pandas的数据类型 1. Series 2. DataFrame

努力让自己发光,对的人才能迎着光而来 17万+

JAVA对象与JSON转换的各种方法-fastjson

fastjson maven <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId...

赛赛 6万+

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Java 解析多层嵌套json数据及json字符串与对象的相互转换

本文主要介绍多层嵌套json字符串的取值,json对象与字符串的相互转换,字符串转化为java对象,字符串转化为javaList列表等。

来到人间不过是个蹭饭的客人,还挑什么酸甜苦辣。 1万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

使用FastJson对JSON字符串、JSON对象及数组进行转换

来源:IT技术  作者:seo实验室小编 http://www.seotest.cn/jishu/45488.html

三分恶的博客 2万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

fastjson 对象与JSON转换方法

经常在json对象、类、字符串之间徘徊

perliu的专栏 7821

使用JSONObject将实体类,Json字符串和Json类型相互转换(java)

使用的是com.alibaba.fastjson.JSONObject JSONObject的maven依赖: <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</g...

小流 4645

使用FastJson进行JSON字符串、JSON对象与Java对象之间的转换

maven依赖包: <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> ...

人生有梦,未来可期 1万+
上一篇: Win10上RabbitMQ安装和启动详细步骤
下一篇: windows安装hadoop教程
皮皮虾的倔强
博客等级 码龄8年 425粉丝 17原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值