欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

go json輸出null

阮建安1年前9瀏覽0評論

在Go語言中,當(dāng)我們使用json.Marshal()函數(shù)進(jìn)行JSON序列化時,如果數(shù)據(jù)中存在nil值或者空值,它們會被輸出為null值。

package main
import (
"encoding/json"
"fmt"
)
type Student struct {
Name  string `json:"name"`
Age   int    `json:"age"`
Grade string `json:"grade,omitempty"`
Score *int   `json:"score,omitempty"`
}
func main() {
score := 92
s := Student{
Name:  "Jack",
Age:   18,
Score: &score,
}
data, _ := json.Marshal(s)
fmt.Println(string(data))
}

對于上述代碼中的結(jié)構(gòu)體Student來說,如果不給Grade和Score字段賦值,則它們的值默認(rèn)為nil。在輸出JSON字符串時,這兩個字段都會被輸出為null值。

我們可以在對應(yīng)字段的tag中加上omitempty選項(xiàng)來避免輸出null值。如下所示:

type Student struct {
Name  string `json:"name"`
Age   int    `json:"age"`
Grade string `json:"grade,omitempty"`
Score *int   `json:"score,omitempty"`
}

在上述代碼中,omitempty選項(xiàng)表示如果對應(yīng)字段的值是空或者nil,則不輸出該字段。

使用這種方式,我們可以自定義控制JSON輸出中的null值,確保輸出的JSON數(shù)據(jù)更加規(guī)范和可讀。