如何在结构的键中使用连字符来解组json字符串?
我有以下代码,这是确定的,它将打印如何在结构的键中使用连字符来解组json字符串?,json,go,struct,Json,Go,Struct,我有以下代码,这是确定的,它将打印Bob: package main import ( "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(
Bob
:
package main
import (
"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)
}
不幸的是,在实际情况中,line1
中的json字符串是下一个,您可以看到键中有一个连字符(-
)
str := `{"user-Name":"Bob", "age": 20}`
大家都知道,要自动解组json字符串,我们必须在struct中定义一个与json字符串中的键同名的成员,当然需要将其设置为大写。因此,我尝试将line2
更改为User Name string
,但-
在go
变量名中无效。我应该怎么做?只需使用将结构字段映射到JSON属性:
type User struct {
UserName string `json:"user-Name"`
Age int
}
有了这个,它会起作用的,试着用它在地板上