当前位置: 首页 > article >正文

Java中String类型的字符串转换成JSON对象和JSON字符串

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 一、Java字符串String类型转换成Json对象
  • 二、序列化
    • 1.引入fastjson依赖
    • 2.序列化的使用
  • 三、反序列化
    • 1.引入fastjson依赖
    • 2.反序列化的使用


一、Java字符串String类型转换成Json对象

在开发中会遇到接收前端传入一个Json对象,然后Json对象里面又有一个字段是Json字符串,例如

{
	"code": "000000",
	"msg": "{\"createTime\":\"20241225\",\"orderId\": \"CP100001\"}"
}

上面的msg字段,如果我们在后端用Map<String, Object>类型去接收,一般使用的代码是

String msg = map.get("msg");

这样,我们打印msg的结果就是上面所见到的,变成了一个String类型的Java字符串,那么我们想要获取msg里面的oderId字段,需要先将String类型的msg字段转换成JSON对象JSONObject

//java字符串转JSON对象
JSONObject jsonObject = JSON.parseObject(msg);
//可以直接从json对象里拿到想要的字段
String orderId = jsonObject.getString("orderId");

如果想要在转化成JSON字符串,可以

String jsonOrderId = JSONObject.toJSONString("orderId");

二、序列化

1.引入fastjson依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.23</version>
</dependency>

2.序列化的使用

序列化就是指 把JavaBean对象转成JSON格式的字符串。
基本的序列化

//对象转换成JSON字符串
String objJson = JSON.toJSONString(Object object);

(1)Map转Json字符串

Map<String, Object> map = new HashMap<String, Object>();
map.put("key1", "One");
map.put("key2", "Two");

String mapJson = JSON.toJSONString(map);

输出结果:
{"key1":"One","key2":"Two"}

(2)自定义的JavaBean转Json字符串

User user = new User();
user.setUserName("李四");
user.setAge(24);    
String userJson = JSON.toJSONString(user);

输出结果:
{"age":24,"userName":"李四"}

三、反序列化

1.引入fastjson依赖

<dependency>
     <groupId>com.alibaba</groupId>
     <artifactId>fastjson</artifactId>
     <version>1.1.23</version>
</dependency>

2.反序列化的使用

反序列化就是把JSON格式的字符串转化为Java Bean对象

(1)基本的反序列化
将上面的userJson字符串反序列化成javaBean对象

User user1 = JSON.parseObject(userJson, User.class);
System.out.println(user1.getUserName());

输出结果:
李四

(2)泛型的反序列化
泛型的反序列化,使用 TypeReference 传入类型信息

Map<String, Object> map1 = JSON.parseObject(mapJson, new TypeReference<Map<String, Object>>(){});
System.out.println(map1.get("key1"));
System.out.println(map1.get("key2"));

输出结果:
One
Two

http://www.kler.cn/a/452752.html

相关文章:

  • 05.HTTPS的实现原理-HTTPS的握手流程(TLS1.2)
  • 【MySQL】十三,关于MySQL的全文索引
  • Redis学习(五)优惠券秒杀2——分布式锁
  • 【R语言遥感技术】“R+遥感”的水环境综合评价方法
  • TLDR:终端命令的简洁百科全书
  • 【NLP高频面题 - 高效微调篇】什么是提示微调?
  • [STM32] 串口通信 (十一)
  • 【落羽的落羽 C语言篇】数据存储简介
  • 车载网关性能 --- 缓存buffer划分要求
  • 109.【C语言】数据结构之求二叉树的高度
  • 探究人工智能在教育领域的应用——以大语言模型为例
  • 【JAVA高级篇教学】第五篇:OpenFeign 微服务调用注意事项
  • docker commit生成的镜像瘦身
  • 参数名在不同的SpringBoot版本中,处理方案不同
  • 深度学习笔记1:神经网络与模型训练过程
  • Java设计模式 —— 【结构型模式】享元模式(Flyweight Pattern) 详解
  • C++-----------数组
  • Linux复习2——管理文件系统1
  • 数据可视化期末复习-简答题
  • golang,多个proxy拉包的处理逻辑
  • MT6765核心板_MTK6765安卓核心板规格参数_联发科MTK模块开发
  • 结构化Prompt:让大模型更智能的秘诀
  • 保姆级教程Docker部署RabbitMQ镜像
  • 【Linux】如何对比两个文件数据不同的地方
  • python+reportlab创建PDF文件
  • Vulnhub之Cengbox 2靶机详细测试过程(利用不同的方法提权)