【JavaSE专栏88】Java字符串和JSON对象的转换,转来转去就是这么玩!

作者主页Designer 小郑
作者简介:3年JAVA全栈开发经验,专注JAVA技术、系统定制、远程指导,致力于企业数字化转型,CSDN学院、蓝桥云课认证讲师。
主打方向:Vue、SpringBoot、微信小程序

本文讲解了 JSON 的概念,以及 Java 中 JSON 对象和字符串的转换方法,并给出了样例代码,JSON 是一种轻量级的数据交换格式,常用于 Web 应用程序中的数据传输。

在这里插入图片描述


一、什么是JSON

JSON 是一种轻量级的数据交换格式,常用于 Web 应用程序中的数据传输

JSON 基于 JavaScript 语法,但是可以被多种编程语言解析和生成。

JSON采用键值对的方式来表示数据,其中键是一个字符串,值可以是字符串、数字、布尔值、对象、数组或null,它具有以下 5 5 5 个特点,同学们可以简单做一个了解。

  1. 简洁性:JSON使用简单的语法来表示数据,易于阅读和编写。
  2. 可读性:JSON的文本格式是纯文本,可以被人类和机器都很容易理解。
  3. 跨语言支持:JSON是一种与语言无关的数据格式,可以被多种编程语言解析和生成。
  4. 数据结构灵活:JSON支持复杂的数据结构,可以嵌套对象和数组。
  5. 数据传输效率高:JSON的数据量较小,传输速度快,适用于网络传输。

在这里插入图片描述

二、JSON的应用场景

JSON 在各种应用中都有广泛的应用场景,以下是一些常见的应用场景,请同学们认真学习。

  1. 前后端数据交互:JSON 常用于前后端数据交互,可以将服务器端的数据以 JSON 格式发送给前端,前端再使用 JavaScript 解析JSON数据进行展示和处理。
  2. API接口设计:许多 Web 服务的API接口都使用 JSON 作为数据交换格式。通过将数据以 JSON 格式发送到 API 接口,可以实现数据的传输和交互。
  3. 数据存储:JSON 可以用于存储和传输配置文件,用户偏好设置等非结构化数据。它可以将数据序列化为 JSON 格式后存储在文件或数据库中,并在需要时重新解析为对象。
  4. 日志记录:JSON 可以用于记录日志信息,将复杂的结构化数据以 JSON 格式记录下来,方便后续的分析和处理。
  5. 移动应用程序开发:JSON 在移动应用程序的开发中也得到了广泛应用,可以用于数据传输、持久化存储、配置文件等方面。
  6. 数据交换:JSON 作为一种通用的数据交换格式,可以用于不同系统之间、不同平台之间的数据传输和交换,实现系统之间的数据共享和互操作。

总的来说,JSON 的灵活性、易读性和跨语言支持使其在各个领域和应用中得到了广泛应用,成为一种常用的数据交换和存储格式。

在这里插入图片描述


三、JSON对象转字符串

在 Java 中,可以使用不同的库来实现 JSON 对象转字符串的操作,比如使用 Jackson 库和 Gson 库来实现。

3.1 使用 Jackson 库实现 JSON 对象转字符串

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) {
        // 创建一个对象
        MyObject myObject = new MyObject("John", 25);

        // 创建ObjectMapper对象
        ObjectMapper objectMapper = new ObjectMapper();
        
        try {
            // 将对象转换为JSON字符串
            String jsonString = objectMapper.writeValueAsString(myObject);
            System.out.println(jsonString);
        } catch (JsonProcessingException e) {
            e.printStackTrace();
        }
    }
}

class MyObject {
    private String name;
    private int age;

    public MyObject(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 省略getter和setter方法
}

3.2 使用 Gson 库实现 JSON 对象转字符串

import com.google.gson.Gson;

public class JsonExample {
    public static void main(String[] args) {
        // 创建一个对象
        MyObject myObject = new MyObject("John", 25);

        // 创建Gson对象
        Gson gson = new Gson();
        
        // 将对象转换为JSON字符串
        String jsonString = gson.toJson(myObject);
        System.out.println(jsonString);
    }
}

class MyObject {
    private String name;
    private int age;

    public MyObject(String name, int age) {
        this.name = name;
        this.age = age;
    }

    // 省略getter和setter方法
}

同学们可以使用 Jackson 库或 Gson 库将一个自定义的 Java 对象转换为 JSON 字符串,可以根据自己的需求选择适合的库来实现 JSON 对象转字符串的功能。

在这里插入图片描述


四、JSON字符串转对象

在 Java 中,可以使用不同的库来实现 JSON 字符串转对象的操作,比如使用 Jackson 库和 Gson 库来实现。

4.1 使用 Jackson 库实现 JSON 字符串转对象

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonExample {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\",\"age\":25}";

        ObjectMapper objectMapper = new ObjectMapper();
        try {
            MyObject myObject = objectMapper.readValue(jsonString, MyObject.class);
            System.out.println(myObject);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class MyObject {
    private String name;
    private int age;

    // 省略getter和setter方法

    @Override
    public String toString() {
        return "MyObject{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

4.2 使用 Gson 库实现 JSON 字符串转对象

import com.google.gson.Gson;

public class JsonExample {
    public static void main(String[] args) {
        String jsonString = "{\"name\":\"John\",\"age\":25}";

        Gson gson = new Gson();
        MyObject myObject = gson.fromJson(jsonString, MyObject.class);
        System.out.println(myObject);
    }
}

class MyObject {
    private String name;
    private int age;

    // 省略getter和setter方法

    @Override
    public String toString() {
        return "MyObject{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}

同学们可以使用 Jackson 库或 Gson 库将一个自定义的 JSON 字符串 转换为 Java 对象,可以根据自己的需求选择适合的库来实现字符串 转 JSON 对象的功能。

在这里插入图片描述


五、JSON面试题

一、什么是JSON?JSON的全称是什么?

JSON 是一种轻量级的数据交换格式,它采用简洁的文本格式来表示结构化数据。

二、在 Java 中,有哪些常用的 JSON 处理库?

常用的 JSON 处理库有 JacksonGson、Fastjson 等。

三、如何将 Java 对象转换为 JSON 字符串?

可以使用 JSON 处理库提供的API,如 Jackson 库的 ObjectMapper 类中的 writeValueAsString() 方法,或者 Gson 库的 toJson() 方法,将 Java 对象转换为 JSON 字符串。

四、如何将 JSON 字符串转换为Java对象?

同样可以使用 JSON 处理库提供的 API,如 Jackson 库的 ObjectMapper 类中的 readValue() 方法,或者 Gson 库的 fromJson() 方法,

五、如何处理 JSON 数组?

可以使用 JSONArray 类来处理 JSON 数组,通过索引获取数组元素,或者使用循环遍历数组元素。

六、如何处理嵌套的 JSON 对象?

JSON 对象可以是嵌套的,可以通过递归的方式解析嵌套的 JSON 对象,或者使用对象映射的方式将嵌套的 JSON 对象映射为 Java 对象。

七、JSON 中的数据类型有哪些?

JSON中的数据类型包括 字符串(String)数字(Number)布尔值(Boolean)数组(Array)对象(Object)null

八、如何处理 JSON 中的日期和时间?

可以将日期和时间转换为特定的格式的字符串进行存储和传输,然后在解析时再将字符串转换为日期和时间类型。

九、如何处理 JSON 中的特殊字符?

在 JSON 中,特殊字符需要进行转义,如双引号需要用 " 表示,换行符需要用 \n 表示。

十、如何处理 JSON 中的空字段?

可以使用 n u l l null null 值来表示 JSON 中的空字段,或者根据具体需求使用默认值或空字符串来表示。


六、总结

本文讲解了 JSON 的概念,以及 Java 中 JSON 对象和字符串的转换方法,并给出了样例代码,在下一篇博客中,将讲解 Java 中 XML 和字符串的转换问题。

在这里插入图片描述

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
【完整课程列表】 资源汇总下载地址:https://download.csdn.net/download/qq_27595745/55418618 Java SE编程入门教程 collection与collections(共7页).pptx Java SE编程入门教程 java GC(共6页).pptx Java SE编程入门教程 java instanceof(共3页).pptx Java SE编程入门教程 java IO(共28页).pptx Java SE编程入门教程 java Math(共11页).pptx Java SE编程入门教程 java object(共9页).pptx Java SE编程入门教程 java static final(共24页).pptx Java SE编程入门教程 java this和super(共10页).pptx Java SE编程入门教程 java 常用API(共22页).pptx Java SE编程入门教程 javaGUI编程快速入门(1)(共82页).pptx Java SE编程入门教程 java包装器(共9页).pptx Java SE编程入门教程 java反射机制(共16页).pptx Java SE编程入门教程 java泛型(共11页).pptx Java SE编程入门教程 java封装继承多态(共56页).pptx Java SE编程入门教程 java集合(共38页).pptx Java SE编程入门教程 java接口(共21页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共56页).pptx Java SE编程入门教程 java类和对象方法以及包的使用(共62页).pptx Java SE编程入门教程 java判断循环(共79页).ppt Java SE编程入门教程 java入门以及变量debug(共63页).pptx Java SE编程入门教程 java设计模式(共17页).pptx Java SE编程入门教程 java数组(共33页).pptx Java SE编程入门教程 java网络编程(共29页).pptx Java SE编程入门教程 java线程(共61页).pptx Java SE编程入门教程 java序列化(共14页).pptx Java SE编程入门教程 java异常(共57页).pptx Java SE编程入门教程 java正则(共8页).pptx Java SE编程入门教程 properties(共3页).pptx Java SE编程入门教程 String字符串(共27页).pptx Java 位运算.docx java正则表达式例子大全 共10页.doc JAVA正则表达式实例教程 共17页.docx JAVA正则表达式实例教程 共17页.pdf 递归算法.docx 堆和栈.wps
Java字符串按正则表达式进行处理的方法有以下几种: 1. 使用String类的split()方法。这个方法可以将字符串按照指定的正则表达式进行分割,返回一个字符串数组。例如,假设有一个字符串str,我们想按照逗号进行分割,可以使用如下代码: ``` String[] parts = str.split(","); ``` 2. 使用Pattern和Matcher类。Pattern类表示编译后的正则表达式,而Matcher类提供了对字符串进行匹配的方法。可以使用Pattern的compile()方法将正则表达式编译成Pattern对象,然后使用Matcher的matches()、find()或group()等方法进行匹配和提取。例如,假设有一个字符串str,我们想提取其中的数字,可以使用如下代码: ``` Pattern pattern = Pattern.compile("\\d+"); // 匹配数字 Matcher matcher = pattern.matcher(str); while (matcher.find()) { String match = matcher.group(); // 处理匹配到的字符串 } ``` 3. 使用String类的replaceAll()方法。这个方法可以将字符串中符合正则表达式的部分替换成指定的字符串。例如,假设有一个字符串str,我们想将其中的空格替换成逗号,可以使用如下代码: ``` String replaced = str.replaceAll("\\s+", ","); ``` 请注意,以上方法都是基于Java中的正则表达式处理相关的类和方法,使用正则表达式需要掌握正则表达式的语法规则和常用的模式匹配方式。另外,如果对字符串处理涉及到更复杂的操作,建议深入学习正则表达式的用法和相关的Java类库方法。 参考资料: Java官方文档 - String类: https://docs.oracle.com/javase/8/docs/api/java/lang/String.html Java官方文档 - Pattern类: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Pattern.html Java官方文档 - Matcher类: https://docs.oracle.com/javase/8/docs/api/java/util/regex/Matcher.html

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值