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

【数据结构】字符串与JSON字符串、JSON字符串及相应数据结构(如对象与数组)之间的相互转换

前言:

下面打印日志用的是FastJSON依赖库中的 @Log4j2。依赖:

<!-- Alibaba Fastjson -->
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.80</version>
</dependency>

目录

普通字符串 -> json字符串

json字符串 -> 普通字符串 

java对象 -> json字符串 

json字符串 -> java对象 


  • 普通字符串 -> json字符串

代码: 

    public static void main(String[] args) {String s = "ningxingxing";String jsonS = "{\"name\":\""+s+"\"}";log.info("jsonS:{}",message);}

输出结果:


  • json字符串 -> 普通字符串 

 代码:

    public static void main(String[] args) {// 定义一个字符串String s = "Hello NingXingxing!";// 转换为JSON格式的字符串String jsonString = "{\"message\":\""+s+"\"}";// 输出JSON格式的字符串log.info("jsonString:{}",jsonString);// 将JSON字符串解析为JSON对象JSONObject jsonObject = JSON.parseObject(jsonString);// 获取JSON对象中的属性值String message = jsonObject.getString("message");// 输出属性值log.info("message:{}",message);}

执行效果:


  • java对象 -> json字符串 

 java对象可以通过序列化转换为json字符串

代码:

package com.muyu.cloud.system.test;import com.alibaba.fastjson2.JSON;
import lombok.extern.log4j.Log4j2;/*** @author: 宁兴星* Date: 2024/9/13 20:50* Description:*/
class Person {private String name;private int age;// 构造函数public Person() {// 默认构造函数}// 带参数的构造函数public Person(String name, int age) {this.name = name;this.age = age;}// Getter 方法public String getName() {return name;}public int getAge() {return age;}// Setter 方法public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}
}@Log4j2
public class STest {public static void main(String[] args) {// 定义一个Person对象Person person = new Person();// 设置Person对象的属性值person.setName("NingXingxing");person.setAge(20);// 将Person对象转换为JSON格式的字符串String jsonString = JSON.toJSONString(person);// 输出JSON格式的字符串log.info("jsonString:{}",jsonString);}}

执行效果:

  • json字符串 -> java对象 

代码:

package com.muyu.cloud.system.test;import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.log4j.Log4j2;/*** @author: 宁兴星* Date: 2024/9/13 20:50* Description:*/class Person {private String name;private int age;// 构造函数public Person() {// 默认构造函数}// 带参数的构造函数public Person(String name, int age) {this.name = name;this.age = age;}// Getter 方法public String getName() {return name;}public int getAge() {return age;}// Setter 方法public void setName(String name) {this.name = name;}public void setAge(int age) {this.age = age;}
}@Log4j2
public class STest {public static void main(String[] args) {// 定义一个JSON格式的字符串String jsonString = "{\"name\":\"NingXingxing\",\"age\":20}";// 将JSON格式的字符串解析为Person对象Person person = JSON.parseObject(jsonString, Person.class);// 输出Person对象的属性值log.info("name:{}, age:{}", person.getName(), person.getAge());}}

输出结果:

http://www.lryc.cn/news/440167.html

相关文章:

  • LeetcodeTop100 刷题总结(一)
  • Next-ViT: 下一代视觉Transformer,用于现实工业场景中的高效部署
  • C++知识点示例代码助记
  • Java 入门指南:JVM(Java虚拟机)垃圾回收机制 —— 垃圾回收算法
  • 苍穹外卖Day01-2
  • 软考中级软件设计师——数据结构与算法基础学习笔记
  • 虚幻引擎 | (类恐鬼症)玩家和NPC语音聊天(中)
  • 整流电路的有源逆变工作状态
  • Android 签名、空包签名 、jarsigner、apksigner
  • java基础(小技巧)
  • Android Studio 安装配置教程(Windows最详细版)
  • Cesium绘制可编辑线
  • 【算法】差分思想:强大的算法技巧
  • 微软开源项目 Detours 详细介绍与使用实例分享
  • Numba基础
  • [JAVA]介绍怎样在Java中通过字节字符流实现文件读取与写入
  • oracle停止当前运行的JOB或kill会话
  • SpringBoot 消息队列RabbitMQ 消息可靠性 数据持久化 与 LazyQueue
  • CLIP论文中关键信息记录
  • sshj使用代理连接服务器
  • 【Leetcode:1184. 公交站间的距离 + 模拟】
  • VRRP 笔记
  • 【洛谷】P3743 小鸟的设备 的题解
  • 算法面经手撕系列(2)--手撕BatchNormlization
  • mysql-搭建主从复制
  • MiniMaxi-共创智能新体验新手入门
  • Docker torchserve 部署模型流程
  • mybatis开启日志
  • MobaXterm : Network error: Connection refused(连接被拒绝)
  • 电脑的主板,内存条插多少合适?