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

go解析json屬性區(qū)分大小寫

呂致盈2年前11瀏覽0評論

在Go語言中,json屬性的名稱默認(rèn)是區(qū)分大小寫的。

假如一個json字符串為:

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

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

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結(jié)構(gòu)體中,屬性的名稱與json中定義的名稱一致,并且屬性名稱也是大寫的。

通過在屬性名稱后添加json:"xxx"標(biāo)記,可以指定該屬性對應(yīng)json中的某個名稱:

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

這樣修改后,該結(jié)構(gòu)體中的屬性名稱就與json中的一致了。

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

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

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