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

【数据结构】字符串与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.kler.cn/news/307899.html

相关文章:

  • 基于深度学习,通过病理切片直接预测HPV状态|文献速递·24-09-16
  • web技术栈总体概念
  • 有关C# .NET Core 过滤器的使用
  • vue part 11
  • string的模拟实现and友元
  • Jacoco的XML报告详解
  • 链动321模式小程序开发源码
  • HTML 和 CSS
  • java项目之基于web的人力资源管理系统的设计与实现(源码+文档)
  • MySQL之安装与基础知识
  • R语言的基础知识R语言函数总结
  • reg和wire的区别 HDL语言
  • chapter14 数据结构与集合源码 知识点总结Note
  • Kotlin 极简小抄 P2(插值表达式、运算符、选择结构赋值)
  • SpringBoot的Web开发支持
  • AG32 MCU的引脚特点及功耗说明
  • 【python数据处理】保存网页
  • C/C++实现植物大战僵尸(PVZ)(打地鼠版)
  • Transformer-Adaboost多输入单输出回归预测神经网络【MATLAB】
  • Alinx MPSoC驱动开发第11章异步IO实验按下按键报IO Possibile后结束进程
  • 【运维】好用的线上项目运维命令
  • ASPICE培训:打造卓越的汽车软件开发能力
  • 比传统机器学习更先进的深度学习神经网络的二分类建模全流程教程
  • 【网络原理】❤️Tcp 常用机制❤️ —— 延时应答,捎带应答, 面向字节流, 异常情况处理。保姆式详解 , 建议收藏 !!!
  • Kafka支持SSL/TLS协议技术深度解析
  • Android13 下载apk并安装apk
  • 跳出大厂圈子——普通程序员如何开启逆袭之路
  • mac上什么压缩软件没有广告,苹果电脑解压软件BetterZip有广告吗
  • 深入理解MATLAB中的事件处理机制
  • ROS组合导航笔记:融合传感器数据