如何在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"