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

使用Jackson库美化JSON输出

在这个快速教程中,我们将学习如何使用Jackson库来美化(pretty print)JSON对象并将其打印到控制台或外部文件。

添加依赖项

首先,在你的pom.xml中添加以下依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>LATEST_VERSION</version> <!-- 请替换为Maven中央仓库上的最新版本 -->
</dependency>

这个依赖会自动引入jackson-corejackson-annotations

启用美化输出

Jackson提供了两种简单的方法来启用JSON美化输出:

  • 使用ObjectMapper.writerWithDefaultPrettyPrinter()方法。
  • 使用ObjectMapper.enable(SerializationFeature.INDENT_OUTPUT)方法。

两种方式都能产生相同的格式化效果。

完整示例

接下来,我们创建一个名为User的类,并演示如何使用上述两种方法之一来美化JSON输出。

package net.javaguides.jackson;

public class User {
    public int id;
    private String firstName, lastName, fullName;

    public User(int id, String firstName, String lastName, String fullName) {
        this.id = id;
        this.firstName = firstName;
        this.lastName = lastName;
        this.fullName = fullName;
    }

    // Getters and setters...
}

然后,我们在主程序中使用这两种方法之一来生成美化后的JSON输出:

package net.javaguides.jackson;

import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;

public class Demo {
    public static void main(String[] args) throws Exception {
        ObjectMapper mapper = new ObjectMapper();
        User user = new User(1, "Ramesh", "Fadatare", "Ramesh Fadatare");

        // Choose one of the following methods to enable pretty print:
        String prettyJson = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(user);
        // OR
        // mapper.enable(SerializationFeature.INDENT_OUTPUT);
        // String prettyJson = mapper.writeValueAsString(user);

        System.out.println(prettyJson);
    }
}

运行此程序将会输出格式化的JSON字符串到控制台。你可以选择任一方法来实现JSON的美化输出。


http://www.kler.cn/a/428459.html

相关文章:

  • 当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。
  • Qt —— 控件属性
  • 从密码学原理与应用新方向到移动身份认证与实践
  • SQL-leetcode—1174. 即时食物配送 II
  • Python的进程和线程
  • 基于 WPF 平台使用纯 C# 实现动态处理 json 字符串
  • Llama-3.1-405B-Instruct 开源体验|对比|亮点|使用|总结
  • PDF拆分之怎么对批量的PDF文件进行分割-免费PDF编辑工具分享
  • 【问题解决方案】项目路径更改后pycharm选定解释器无效
  • windows下如何开启HUGE PAGES unavailable
  • yarn : 无法加载文件 C:\Users\L\AppData\Roaming\npm\yarn.ps1,因为在此系统上禁
  • 音视频入门基础:MPEG2-TS专题(13)——FFmpeg源码中,解析Section Header的实现
  • OpenHarmony-4.GPIO驱动
  • 【Compose multiplatform教程】01 创建你的多平台项目 <官网搬运>
  • 多线程编程:线程间的同步与通信
  • 《向量数据库指南》——Mlivus Cloud:OPPO的向量数据库选型秘籍
  • AGameModeBase和游戏模式方法
  • 03、Node.js安装及环境配置
  • 如何在自动化安全测试中,实现多工具集成与数据融合,以提高对Spring Boot应用程序安全漏洞的检测效率与准确性?
  • C++(十一)
  • Spring Security集成JWT
  • 【数学建模】论文排版教程
  • Linix学习一
  • Qt中实现可视化界面的TCP SYN扫描(改进版)
  • Lumos学习王佩丰Excel第二十讲:图表基础
  • 黑马程序员Java项目实战《苍穹外卖》Day09