Avatar ·

如何在Go中美观地输出JSON:调试和日志的便捷格式化

大家好!我刚开始学习Go,在处理JSON时遇到了一个问题。我有一个结构体,将其序列化为JSON,但当我通过fmt.Println输出结果时,所有内容都显示在一行中,没有格式化。这对于调试来说非常不方便,尤其是当结构体很大且嵌套时。 以下是我的代码示例: ```go package main import ( "encoding/json" "fmt" ) type User struct { Name string `json:"name"` Age int `json:"age"` Hobbies []string `json:"hobbies"` Address struct { City string `json:"city"` Zip string `json:"zip"` } `json:"address"` } func main() { u := User{ Name: "Alice", Age: 30, Hobbies: []string{"reading", "coding", "hiking"}, } u.Address.City = "Moscow" u.Address.Zip = "101000" data, _ := json.Marshal(u) fmt.Println(string(data)) // 输出: {"name":"Alice","age":30,"hobbies":["reading","coding","hiking"],"address":{"city":"Moscow"