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

前言:

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

java 复制代码
<!-- Alibaba Fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.80</version>
</dependency>

目录

[普通字符串 -> json字符串](#普通字符串 -> json字符串)

[json字符串 -> 普通字符串](#json字符串 -> 普通字符串)

[java对象 -> json字符串](#java对象 -> json字符串)

[json字符串 -> java对象](#json字符串 -> java对象)


普通字符串 -> json字符串

代码:

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

输出结果:


json字符串 -> 普通字符串

代码:

java 复制代码
    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字符串

代码:

java 复制代码
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对象

代码:

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());
    }

}

输出结果:

相关推荐
Goldn.16 小时前
Java核心技术栈全景解析:从Web开发到AI融合
java· spring boot· 微服务· ai· jvm· maven· hibernate
李慕婉学姐17 小时前
【开题答辩过程】以《基于Android的出租车运行监测系统设计与实现》为例,不知道这个选题怎么做的,不知道这个选题怎么开题答辩的可以进来看看
java·后端·vue
m0_7400437317 小时前
SpringBoot05-配置文件-热加载/日志框架slf4j/接口文档工具Swagger/Knife4j
java·spring boot·后端·log4j
编织幻境的妖17 小时前
SQL查询连续登录用户方法详解
java·数据库·sql
晨晖218 小时前
单链表逆转,c语言
c语言·数据结构·算法
未若君雅裁18 小时前
JVM面试篇总结
java·jvm·面试
kk哥889918 小时前
C++ 对象 核心介绍
java·jvm·c++
招风的黑耳18 小时前
我用SpringBoot撸了一个智慧水务监控平台
java·spring boot·后端
xunyan623418 小时前
面向对象(下)-接口的理解
java·开发语言
程序员游老板18 小时前
基于SpringBoot3+vue3的爱心陪诊平台
java·spring boot·毕业设计·软件工程·课程设计·信息与通信