在Go語言中,使用json格式進行數(shù)據(jù)交換是很常見的。在格式化打印json串時,需要使用到Go原生包中的encoding/json包,并提供合適的設置參數(shù)才可以正確展示。
首先需要定義一個結構體,該結構體需要與待處理的json串的格式匹配。以一個簡單的json串為例:
{ "name": "Tom", "age": 18 }
可對應定義如下的Go結構體:
type Person struct { Name string `json:"name"` Age int `json:"age"` }
接著定義一個Person類型的實例:
person := Person{ Name: "Tom", Age: 18, }
使用json包中的MarshalIndent函數(shù)進行格式化打印,該函數(shù)在進行編碼時,會自動處理好縮進、空格、換行等格式問題:
jsonBytes, err := json.MarshalIndent(person, "", " ") if err != nil { fmt.Println("json marshal error:", err) return } fmt.Println(string(jsonBytes))
其中第二個參數(shù)(空字符串)表示進行縮進時使用的前綴,如果需要使用tab縮進,該參數(shù)可以傳入\t;第三個參數(shù)(四個空格)表示進行縮進時使用的縮進符號。
執(zhí)行上述代碼后,控制臺會輸出如下內容:
{ "name": "Tom", "age": 18 }
可以看到json格式的數(shù)據(jù)已經(jīng)被正確格式化打印出來了。