首先看一段代码:
package main import ( "encoding/json" "fmt" ) type Result struct { //status int `json:"status"` //A Status int //B } func main() { var s string = `{"status":200}` r := &Result{} err := json.Unmarshal([]byte(s), r) if err != nil { fmt.Println(err) } fmt.Println(r) fmt.Println(r.Status) }
请问A跟B哪个是对的,哪个是错的,为什么?
当需要序列化类的时候,字段必须是可导出的,而golang语言规范中,可导出就意味着是首字母大写,所以这里的字段需要大写,即使写了标记的小写还是不能序列化的。