在java控制台展示好看的json字符串

在 Java 控制台优雅、美观、带缩进、彩色高亮打印 JSON,我给你整理了最简单、最实用、开箱即用的 3 种方案,直接复制就能用!

一、最简单:只用 JDK(无任何依赖)

适合不想引包、快速格式化,控制台输出带缩进的漂亮 JSON

java

运行

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

public class JsonPrettyPrint {
    public static void main(String[] args) throws Exception {
        // 你的 JSON 字符串(压缩版)
        String json = "{\"name\":\"张三\",\"age\":25,\"hobbies\":[\"篮球\",\"编程\"]}";

        // JDK 自带方式格式化(无依赖)
        ObjectMapper mapper = new ObjectMapper();
        mapper.enable(SerializationFeature.INDENT_OUTPUT);

        Object jsonObj = mapper.readValue(json, Object.class);
        String prettyJson = mapper.writeValueAsString(jsonObj);

        System.out.println(prettyJson);
    }
}

输出效果:

json

{
  "name" : "张三",
  "age" : 25,
  "hobbies" : [ "篮球", "编程" ]
}

二、最好看:Gson 格式化(最常用)

代码最短、最稳定,Spring 项目几乎都自带。

java

运行

import com.google.gson.GsonBuilder;

public class GsonPretty {
    public static void main(String[] args) {
        String json = "{\"name\":\"张三\",\"age\":25}";
        
        // 一行代码格式化
        String prettyJson = new GsonBuilder().setPrettyPrinting().create().toJson(json);
        
        System.out.println(prettyJson);
    }
}

输出效果整齐干净:

json

{
  "name": "张三",
  "age": 25
}

三、最炫酷:彩色高亮 JSON(控制台颜值最高)

使用 JSONFormatter + ANSI 颜色,控制台直接输出彩色 JSON

效果:

  • 键:青色
  • 字符串:黄色
  • 数字:绿色
  • 布尔:紫色

依赖(Maven)

xml

<dependency>
    <groupId>com.github.ralfstuckert.jsonpretty</groupId>
    <artifactId>jsonpretty-core</artifactId>
    <version>0.1.0</version>
</dependency>

使用

java

运行

import com.ralfstuckert.jsonpretty.JsonPretty;

public class ColorJson {
    public static void main(String[] args) {
        String json = "{\"user\":\"admin\",\"age\":26,\"active\":true}";
        
        // 彩色输出
        String colorJson = JsonPretty.format(json);
        System.out.println(colorJson);
    }
}

四、我最推荐的终极工具类(直接复制到项目)

无依赖、自动判断是否是 JSON、自动格式化

java

运行

import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonUtil {

    private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper();

    // 控制台漂亮打印 JSON
    public static void prettyPrint(Object obj) {
        try {
            String json = OBJECT_MAPPER.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
            System.out.println(json);
        } catch (Exception e) {
            System.out.println(obj);
        }
    }

    // 字符串 JSON 漂亮打印
    public static void prettyPrintJson(String jsonStr) {
        try {
            Object obj = OBJECT_MAPPER.readValue(jsonStr, Object.class);
            prettyPrint(obj);
        } catch (Exception e) {
            System.out.println(jsonStr);
        }
    }
}

使用

java

运行

// 打印对象
JsonUtil.prettyPrint(user);

// 打印 JSON 字符串
JsonUtil.prettyPrintJson(jsonStr);

五、快速选择指南

表格

方案优点适用场景
JACKSON(JDK)无依赖所有项目
GSON代码最短Spring / Android
JSONPretty彩色高亮调试、演示

总结

最简单的方法objectMapper使用时在writeValueAsString加上writerWithDefaultPrettyPrinter()方法

如下:

objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(你的对象))

  • 日常开发首选:Jackson / Gson 格式化
  • 追求颜值:彩色 JSON 库
  • 不想引包:直接用 JDK 自带方式
火灾烟雾目标检测数据集一、基础信息数据集名称:火灾烟雾目标检测数据集图片数量:- 训练集:8,456张图片- 验证集:2,037张图片- 测试集:1,053张图片- 总计:11,546张图片分类类别:- fire(火灾):表示火焰或燃烧场景,用于识别火灾事件。- smoke(烟雾):表示烟雾或烟尘,用于检测火灾早期迹象。标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。数据格式:JPEG图片,来源于真实场景采集。二、适用场景火灾预警与安防系统开发:数据集支持目标检测任务,帮助构建能够自动识别火灾和烟雾的AI模型,用于智能监控摄像头或无人机系统,实现早期火灾报警。环境安全监测应用:集成至工业区、森林或城市安防平台,实时检测烟雾和火焰,提升灾害预防和响应效率。公共安全研究:支持计算机视觉在消防和安全领域的学术研究,助力开发新型风险评估工具。智能硬件集成:适用于嵌入式设备(如物联网传感器),为火灾检测算法提供训练基础,优化实时性能。三、数据集优势精准标注与覆盖:所有图片均基于实际场景标注,边界框精确标记火灾和烟雾区域,确保模型学习可靠性。场景多样性:包含多种环境下的样本(如室内、户外),涵盖不同光照和背景条件,增强模型的泛化能力。任务适配性强:YOLO格式兼容主流深度学习框架(如YOLOv5、Darknet),便于快速加载和训练,支持目标检测任务高效开发。实用价值突出:专注于火灾早期检测关键类别(烟雾和火焰),为减少灾害损失提供高质量数据支撑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值