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

golang json 私有字段

林玟書2年前9瀏覽0評論

在 Golang 中,結構體默認是私有的,但是可以通過在字段前添加大寫字母來將其變成公有的。當我們想將結構體序列化為 JSON 字符串時,私有字段將不會被編碼進去。但是,有時候我們可能需要在序列化時包含私有字段,這時我們可以使用 Golang 內置的 JSON 標簽。

type Person struct {
Name     string `json:"name"`      // 公有字段
location string `json:"location"`  // 私有字段
}
person := Person{
Name:     "Jack",
location: "New York",
}
jsonBytes, err := json.Marshal(person)
if err != nil {
log.Fatal(err)
}
fmt.Println(string(jsonBytes))

如果我們現在運行上面的代碼,我們只會看到 JSON 中的name字段,而location字段是不會被編碼的。為了將其也編碼進去,我們需要在結構體中使用 JSON 標簽來告訴編碼器它的 JSON 字段名。

type Person struct {
Name     string `json:"name"`      // 公有字段
location string `json:"location"`  // 私有字段
}
person := Person{
Name:     "Jack",
location: "New York",
}
jsonBytes, err := json.Marshal(struct{ Person }{person})
if err != nil {
log.Fatal(err)
}
fmt.Println(string(jsonBytes))

現在,我們將Person結構體嵌入了一個無名的結構體中,并將該結構體序列化,這將使私有字段也能被編碼到 JSON 中。

Golang 中的 JSON 標簽還有一些其他的應用場景,比如告訴編碼器如何對字段進行編碼等。有了這些知識,我們能更好地控制 JSON 進行編碼和解碼的過程,更好地應用在我們的項目中。