news 2026/4/3 2:43:07

golang格式化打印json

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
golang格式化打印json

一、背景与作用

在 Go 项目中,经常需要把结构体、map 等数据序列化为 JSON,用于:
打日志(debug)
写文件(配置 / 结果快照)
排查复杂嵌套数据(如告警、监控、Agent 返回)

encoding/json 提供了两种常用方式:
json.Marshal:紧凑 JSON,适合机器传输
json.MarshalIndent:格式化 JSON,适合人阅读

json.MarshalIndent 的核心目标只有一个:让 JSON 更可读,而不改变其语义。

funcjson.MarshalIndent(v any,prefix,indentstring)([]byte,error)

1️⃣ v(待序列化对象)

可以是 struct、map、slice、嵌套组合

行为与 json.Marshal 完全一致

2️⃣ prefix(行前缀)

会加在 每一行的最前面

常见写法:“”

偶尔用于日志对齐或嵌入输出

3️⃣ indent(缩进字符串)

每增加一层嵌套,就追加一次

data:=map[string]any{"id":1,"name":"alert","meta":map[string]any{"state":"alerting","count":3,},}b,err:=json.MarshalIndent(data,""," ")iferr!=nil{panic(err)}fmt.Println(string(b)){"id":1,"meta":{"count":3,"state":"alerting"},"name":"alert"}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/1 15:01:24

主机监控指标解析—CPU篇

一、 CPU 使用率 这是最基础的指标,反映了 CPU 时间片被不同类型任务占用的比例。理解不同状态的占用是定位问题的关键。 1.1 核心指标详解 命令:top, mpstat -P ALL, sar -u 指标含义:指标名称对应字段 (top)含义详解作用与分析User%us用户态…

作者头像 李华
网站建设 2026/3/31 8:00:13

快速解决Dokploy中.traefik.me证书失效问题

快速解决Dokploy中.traefik.me证书失效问题 【免费下载链接】dokploy Open Source Alternative to Vercel, Netlify and Heroku. 项目地址: https://gitcode.com/GitHub_Trending/do/dokploy 你是否在使用Dokploy部署应用时遇到过浏览器显示"您的连接不是私密连接&…

作者头像 李华
网站建设 2026/3/27 5:34:28

Highway:解锁跨平台向量计算的终极解决方案

Highway:解锁跨平台向量计算的终极解决方案 【免费下载链接】highway 性能可移植的、长度无关的SIMD 项目地址: https://gitcode.com/GitHub_Trending/hi/highway 还在为不同CPU架构下的性能优化而烦恼吗?是否厌倦了为Intel、ARM、RISC-V等平台编…

作者头像 李华
网站建设 2026/4/2 20:40:44

长效住宅静态IP有什么好处?是选择动态IP还是静态IP好?

在当今数字化时代,网络连接已经成为我们生活中不可或缺的一部分。对于住宅网络用户而言,选择合适的IP地址类型至关重要。长效住宅静态IP和动态IP各有特点,了解它们的好处以及如何选择,能帮助我们更好地满足网络使用需求。长效住宅…

作者头像 李华
网站建设 2026/4/1 18:39:18

上下文切换终极指南:揭秘操作系统如何实现无缝多任务处理

上下文切换终极指南:揭秘操作系统如何实现无缝多任务处理 【免费下载链接】putting-the-you-in-cpu A technical explainer by kognise of how your computer runs programs, from start to finish. 项目地址: https://gitcode.com/gh_mirrors/pu/putting-the-you…

作者头像 李华