Go语言如何导出HTTP请求体中带下划线的JSON结构体字段?
解决Go结构体解析下划线开头JSON键的报错问题
问题根源在于Go的访问控制规则:未导出的结构体字段(首字母小写或以下划线开头)无法被encoding/json包读取或写入,即便指定了JSON tag也无效。你的字段_my_property属于未导出字段,因此触发报错。
解决方法很直接:将结构体字段名改为首字母大写(导出字段),同时保留原JSON tag即可:
type TopologyGateway struct { _My_property string `json:"_my_property"` }
如果想更贴合Go的命名规范,也可以写成驼峰形式,不影响JSON解析:
type TopologyGateway struct { MyProperty string `json:"_my_property"` }
修改后encoding/json包就能正常识别JSON中的_my_property键,并将值映射到对应的导出字段中。
内容的提问来源于stack exchange,提问作者justAnotherNooB
相关产品推荐
相关产品推荐

