Golang结构域的名称和解组到这个结构

时间:2017-02-22 08:11:17

标签: json go structure unmarshalling

我写了一个示例程序来说明我的问题,可以在这里查看: https://play.golang.org/p/6776lYcbBR

所以我的问题是:

当结构( GameOne )字段的名称以大写字母开头时, json.Unmarshal 可用作预期; 当它以小写字母开头( GameTwo )时,字段值将设置为默认值。

为什么会这样?它与范围/可见性规则有关吗?

提前谢谢。

2 个答案:

答案 0 :(得分:1)

json.Unmarshal仅设置结构中的导出字段,并且对于导出字段,第一个字母必须为大写 有关详细信息,我强烈建议您查看documentation

答案 1 :(得分:1)

来自the documentation(强调补充):

  

Unmarshal只会设置导出的结构字段

当然,不会导出以小写字母开头的字段。因此,JSON封送器(或者包装外部的任何东西)都无法影响它们。