Go語言中,我們經常需要將結構體(struct)或map轉成json格式輸出。在Go中,有一套自帶的json包,提供了相應的函數和方法來進行JSON數據的編碼和解碼操作。
一個簡單的例子如下:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { p := Person{"Tom", 27} b, err := json.Marshal(p) if err != nil { panic(err) } fmt.Println(string(b)) }
該程序的輸出結果為:
{"Name":"Tom","Age":27}
我們可以看到,json.Marshal()函數將Person結構體編碼為json格式的[]byte數組。但是,輸出的內容相對比較緊湊,不太方便人類進行閱讀和理解。因此,我們可以使用json.MarshalIndent()函數,以便更為友好地輸出json。
修改上面的例子:
package main import ( "encoding/json" "fmt" ) type Person struct { Name string Age int } func main() { p := Person{"Tom", 27} b, err := json.MarshalIndent(p, "", " ") if err != nil { panic(err) } fmt.Println(string(b)) }
輸出結果為:
{ "Name": "Tom", "Age": 27 }
我們可以看到,json.MarshalIndent()函數新增了兩個參數——prefix和indent,分別表示每一行輸出的前綴和縮進。這樣,我們就得到了比較美觀且人性化的json格式輸出。
最后,我們來總結一下:
- 使用json.Marshal()函數可以將特定類型的數據(如結構體、map等)編碼為json格式的字節數組;
- 使用json.MarshalIndent()函數可以將編碼后的json格式數組進行格式化,并輸出到控制臺。
上一篇python 谷歌關鍵點
下一篇vue實現彈出頁