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

【工具】使用 Jackson 实现优雅的 JSON 格式化输出

说明

在 Java 开发中,我们经常需要处理 JSON 数据。无论是从服务器端返回的数据,还是本地存储的数据,JSON 格式都因其轻量级和易于解析的特点而被广泛使用。当我们需要查看或调试 JSON 数据时,优雅、格式化的输出将大大提高我们的工作效率。这里使用 Jackson 工具库来实现 JSON 字符串的格式化输出。
Jackson 是一个高效的 Java JSON 处理库,广泛用于 Java 企业级应用。它支持对象与 JSON 字符串之间的相互转换,拥有高效的性能和良好的兼容性。在处理 JSON 数据时,Jackson 还能提供许多有用的功能,比如自定义序列化和反序列化、数据格式化输出等。

代码

        <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.7.4</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-core</artifactId><version>2.7.4</version></dependency><dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-annotations</artifactId><version>2.7.4</version></dependency>
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;public class JsonFormatter {public static void main(String[] args) throws IOException {// 已知一个 JSON 字符串String json = "{\"name\":\"zhangSan\",\"age\":23,\"address\":\"anhui\"}";// 创建 ObjectMapper 对象ObjectMapper mapper = new ObjectMapper();// 将 JSON 字符串解析为 Java 对象Object obj = mapper.readValue(json, Object.class);// 使用默认的 PrettyPrinter 格式化输出 JSON 字符串String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);// 输出格式化后的 JSON 字符串System.out.println(prettyJson);}
}

在这里插入图片描述

代码详解

ObjectMapper 的使用:ObjectMapper 是 Jackson 库中用于 JSON 处理的核心类。我们使用它将 JSON 字符串解析为 Java 对象,或者将 Java 对象转换为 JSON 字符串。
readValue 方法:readValue 方法用于将 JSON 字符串解析为指定类型的 Java 对象。在这个例子中,我们将 JSON 字符串转换为通用的 Object 对象。
writerWithDefaultPrettyPrinter 方法:这个方法返回一个配置了默认“漂亮打印机”的 ObjectWriter,用于将 JSON 对象格式化为漂亮的字符串。
writeValueAsString 方法:该方法将 Java 对象转换为 JSON 字符串,在这个例子中是格式化的输出。

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

相关文章:

  • ApacheKafka中的设计
  • .NET 自定义过滤器 - ActionFilterAttribute
  • VMware Fusion Pro 13 for Mac虚拟机软件
  • HarmonyOS应用开发环境搭建
  • YOLOv8改进实战 | 注意力篇 | 引入ICCV2023顶会LSKNet:大选择性卷积注意力模块LSKA,助力小目标检测
  • 00Mac安装playwright
  • materail3 CircularProgressIndicator和LinearProgressIndicator有难看的白块和断点
  • 菜鸟入门Docker
  • 什么是单片机?为什么要学习单片机?
  • 电子发射与气体导电
  • 【数据库】MySQL表的Updata(更新)和Delete(删除)操作
  • Unity Adressables 使用说明(六)加载(Load) Addressable Assets
  • 视频监控系统布局策略:EasyCVR视频汇聚平台构建高效、全面的安全防线
  • Spark的Web界面
  • 语言中的内联
  • fail to install hcmon driver问题解决
  • 【NumPy】基础知识
  • 传统CV算法——特征匹配算法
  • PyInstaller问题解决 onnxruntime-gpu 使用GPU和CUDA加速模型推理
  • Apache Pig
  • axios返回的是promise对象如何处理?
  • 归并排序/计数排序
  • etcdctl defrag 剔除、添加etcd节点
  • 计算机网络(二) —— 网络编程套接字
  • 二百五十九、Java——采集Kafka数据,解析成一条条数据,写入另一Kafka中(一般JSON)
  • Qt项目使用Inno Setup打包(关于打包中文乱码的解决)
  • HTML和HTML5有什么区别
  • Collections
  • fastreport打印trichedit分页问题的解决
  • 【MeterSphere】vnc连接不上selenium-chrome容器