我有以下代碼,可以,它會(huì)打印Bob:package mainimport ( "encoding/json" "fmt")type User struct { UserName string // line2 Age int}func main() { var u User str := `{"userName":"Bob", "age": 20}` // line1 json.Unmarshal([]byte(str), &u) fmt.Println(u.UserName)}不幸的是,在實(shí)際情況中,下一個(gè)是 json 字符串,您可以看到鍵中l(wèi)ine1有一個(gè)連字符( )。-str := `{"user-Name":"Bob", "age": 20}`眾所周知,為了自動(dòng)解組json字符串,我們必須在struct中定義一個(gè)與json字符串中的鍵同名的成員,當(dāng)然需要將其設(shè)置為大寫(xiě)。所以我嘗試更改line2為User-Name string,但在變量名稱-中無(wú)效。go我應(yīng)該怎么辦?
1 回答

浮云間
TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超4個(gè)贊
只需使用結(jié)構(gòu)標(biāo)簽將結(jié)構(gòu)字段映射到 JSON 屬性:
type User struct {
? ? UserName string `json:"user-Name"`
? ? Age? ? ? int
}
- 1 回答
- 0 關(guān)注
- 127 瀏覽
添加回答
舉報(bào)
0/150
提交
取消