色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

go json 格式化輸出

傅智翔2年前8瀏覽0評論

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格式數組進行格式化,并輸出到控制臺。