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

golang json標簽

洪振霞1年前8瀏覽0評論

golang中的json標簽在序列化和反序列化JSON數據時非常有用。它允許我們指定struct字段的名稱、類型以及是否要忽略某些字段。

以下是一個簡單的示例:

type Person struct {
Name string `json:"name"`
Age  int    `json:"age"`
}
func main() {
p := Person{Name: "John", Age: 30}
b, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(b))
// Output: {"name":"John","age":30}
}

在上面的示例中,我們定義了一個Person結構體,并為每個字段添加了json標簽。然后我們將一個Person實例編碼成一個JSON字符串。因為我們添加了json標簽,所以編碼后的JSON字符串字段名為"name"和"age",而不是struct字段的名稱。

json標簽還有一些其他的用法。例如,我們可以使用"omitempty"選項,以指示當struct字段的值為零值時是否應該忽略該字段:

type Person struct {
Name     string  `json:"name"`
Age      int     `json:"age,omitempty"`
Location string  `json:"location,omitempty"`
}
func main() {
p := Person{Name: "John"}
b, err := json.Marshal(p)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(b))
// Output: {"name":"John"}
}

在上面的示例中,我們定義了一個我們忽略了Age和Location字段的Person結構體。然后我們創建了一個Person實例,并將其編碼為一個JSON字符串。因為Age和Location都是零值,所以這些字段被忽略了。我們只得到了"name"字段的JSON輸出。

json標簽還有一些其他的選項,可以在golang官方文檔中查看,它們能夠使我們更好地控制序列化和反序列化JSON數據時的行為。