我有一个非常简单的程序,如下所示:
package main
import (
"encoding/json"
"fmt"
)
type RunCommand struct{
level string `json:"level"`
caller string `json:"caller"`
msg string `json:"msg"`
cmd string `json:"cmd"`
}
func main() {
content := `{"level":"info","caller":"my.go:10","msg":"run","cmd":"--parse"}`
runCommand := RunCommand{}
e := json.Unmarshal([]byte(content), &runCommand)
if e != nil {
fmt.Println("Unmarshal error")
}
fmt.Println(runCommand.level)
}
我希望我可以将“content”中的所有 json 字段解析为“runCommand”对象,但实际上,最终的“fmt.Println”什么也不打印。我哪里搞错了?
您必须有导出字段,如下所示:
type RunCommand struct{
Level string `json:"level"`
Caller string `json:"caller"`
Msg string `json:"msg"`
Cmd string `json:"cmd"`
}
现在你可以使用:fmt.Println(runCommand.Level)
否则json.Unmarshal
将忽略非导出字段。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)