golang中json序列化和反序列化的一个问题,感觉很奇怪

```go type slisli struct { a float64 `json:"a"` b float64 `json:"b"` c string `json:"c"` } type Message struct { Name string `json:"msg_name"` Body string `json:"body,omitempty"` //该字段为空则忽略 Age int `json:"age"` Sli []slisli `json:"sli"` } func main(){ var me Message var me2 Messag e ssll1:=slisli{0.5,0.5,"aaaa"} ssll2:=slisli{1.1,1.1,"bbbb"} ssll3:=slisli{6.6,6.6,"cccc"} ssll4:=slisli{7.7,7.7,"dddd"} var sll=[]slisli{ssll1,ssll2} me = Message{ Name: "aaa", Body: "", Age:12, Sli: sll, } d, Rrr := json.Marshal(me) Rrr =json.Unmarshal(d,&me2) fmt.Println(me2) } ``` 为什么打印结果是{aaa 12 [{0 0 } {0 0 }]} ???
已邀请:

曹涛

赞同来自: tupunco ddxx11223 singlethread

变量小写的不导出

kekemuyu - 简单就好

赞同来自: ddxx11223

```go
type slisli struct {
a float64 `json:"a"`
b float64 `json:"b"`
c string `json:"c"`
}
```
a,b,c改为大写
认真阅读 `Go 代码规范`, 搞 `序列化/反序列化` 清楚原理.
没错问题就是 `私有字段` 无法在 `外部包` 内被访问到.

要回复问题请先登录注册