黑河市网站建设_网站建设公司_jQuery_seo优化
2025/12/17 19:46:54 网站建设 项目流程

一、背景与作用

在 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"}

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询