当前位置: 首页 > 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 字符串,在这个例子中是格式化的输出。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【重学 MySQL】十六、算术运算符的使用
  • 如何利用ChatGPT提升学术论文讨论部分的撰写质量和效率
  • Ansible 自动化运维项目
  • 【C++二分查找】1760. 袋子里最少数目的球
  • select、poll、epoll的区别
  • 组合模式composite
  • MySql约束练习
  • 5.3.数据结构-c/c++二叉树代码
  • C语言-第八章:指针进阶
  • 保研 比赛 利器: 用AI比赛助手降维打击数学建模
  • 内推|京东|后端开发|运维|算法...|北京 更多岗位扫内推码了解,直接投递,跟踪进度
  • 数据传输安全——混合加解密
  • 压缩PDF,介绍这五种压缩方案
  • 什么是Web服务器集群?
  • springboot服务器文件读取工具类
  • 【Under-the-hood-ReactJS-Part0】React源码解读
  • DOM的那些事
  • ES6语法详解(一)
  • If…else
  • Javascript 原型链
  • Java超时控制的实现
  • JS字符串转数字方法总结
  • pdf文件如何在线转换为jpg图片
  • 关于springcloud Gateway中的限流
  • 买一台 iPhone X,还是创建一家未来的独角兽?
  • 爬虫进阶 -- 神级程序员:让你的爬虫就像人类的用户行为!
  • 试着探索高并发下的系统架构面貌
  • 字符串匹配基础上
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​Java基础复习笔记 第16章:网络编程
  • #### golang中【堆】的使用及底层 ####
  • #在 README.md 中生成项目目录结构
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C语言)fgets与fputs函数详解
  • (JS基础)String 类型
  • (Matalb时序预测)WOA-BP鲸鱼算法优化BP神经网络的多维时序回归预测
  • (Redis使用系列) Springboot 使用redis的List数据结构实现简单的排队功能场景 九
  • (几何:六边形面积)编写程序,提示用户输入六边形的边长,然后显示它的面积。
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (四)Controller接口控制器详解(三)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)ABI是什么
  • **PyTorch月学习计划 - 第一周;第6-7天: 自动梯度(Autograd)**
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net IOC框架入门之一 Unity
  • .NET MVC第三章、三种传值方式
  • .NET 命令行参数包含应用程序路径吗?
  • .net打印*三角形
  • .net和jar包windows服务部署
  • .NET设计模式(8):适配器模式(Adapter Pattern)
  • .pub是什么文件_Rust 模块和文件 - 「译」
  • @entity 不限字节长度的类型_一文读懂Redis常见对象类型的底层数据结构
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [【JSON2WEB】 13 基于REST2SQL 和 Amis 的 SQL 查询分析器