JSON 处理的阅读记录

type Server struct {
    ServerName string
    ServerIP   string `json:"ServerIP"`
}

JSON 的 key 是 Foo,那么怎么找对应的字段呢?

type Serverslice struct {
    Servers []Server
}

func main() {
    var s Serverslice
    str := `{"servers":[{"serverName":"Shanghai_VPN","serverIP":"127.0.0.1"},{"serverName":"Beijing_VPN","serverIP":"127.0.0.2"}]}`
    json.Unmarshal([]byte(str), &s)
    fmt.Println(s)
}
1.首先查找 tag 含有 Foo 的可导出的 struct 字段 (首字母大写)。只要含有tag标签的字段是可导出的,tag标签和字段key一样就可以了(tag大小写不敏感)
type  Server  struct {
    ServerName string
    ServerIPs string  `json:"Serverip"`
}
这样字段不一样,但是tag一致就可以匹配上的

2.在没有tag标签的字段其次查找字段名是 Foo 的导出字段
type  Server  struct {
    ServerName string
    ServerIP string
}
3.最后查找类似 FOO 或者 FoO 这样的除了首字母之外其他大小写不敏感的导出字段
type  Server  struct {
    ServerName string
    Serverip string
}
讨论数量: 0
(= ̄ω ̄=)··· 暂无内容!

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!