type my struct {
label int
}
m := my{label: 2}
m_json:= json.Marshal(m)
fmt.Println(m_json)
输出: 空
type my struct {
Label int
}
输出: {“Label”: 2}
type my struct {
Label int `json:"name"`
}
输出: {“name”: 2}
原因:go用首字母的大小写来确定是共有的还是私有的,也就是一个变量函数等能不能被其他包引用,小写字母开头的(私有)只能包内使用,不能被其他包使用。
因为json.Marshal
是另外一个包,json这个包没法给你现在所在的包里的任何私有变量(小写字母开头的)赋值。