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

go解析json屬性區分大小寫

呂致盈1年前10瀏覽0評論

在Go語言中,json屬性的名稱默認是區分大小寫的。

假如一個json字符串為:

{
"name": "Tom",
"Age": 20
}

在Go中解析該json字符串時,需要對屬性的名稱進行區分大小寫。

type Person struct {
Name string `json:"name"`
Age int `json:"Age"`
}
func main() {
jsonStr := `{
"name": "Tom",
"Age": 20
}`
var p Person
err := json.Unmarshal([]byte(jsonStr), &p)
if err != nil {
panic(err)
}
fmt.Println(p.Name, p.Age)
}

注意,在Person結構體中,屬性的名稱與json中定義的名稱一致,并且屬性名稱也是大寫的。

通過在屬性名稱后添加json:"xxx"標記,可以指定該屬性對應json中的某個名稱:

type Person struct {
Name string `json:"name"`
Age int `json:"age"`
}

這樣修改后,該結構體中的屬性名稱就與json中的一致了。

同樣,Marshal方法也是區分大小寫的。如果想輸出json字符串時屬性名稱不區分大小寫,可以通過修改結構體的tag達到目的:

type Person struct {
Name string `json:"name"`
Age int `json:"Age"`
}

這樣定義后,使用Marshal方法輸出的json字符串中,屬性名稱的大小寫將與結構體中定義的大小寫一致。