JSON和处理未导出的字段

JSON和处理未导出的字段,第1张

JSON和处理未导出字段

有技术原因。除非已导出,否则json库无权使用反射查看字段。包只能查看其自己包中类型的未导出字段

为了解决您的问题,您可以做的是使用导出的字段创建未导出的类型。如果将Json毫无问题地传递给未导出的类型,它将解组,但是它不会显示在API文档中。然后,您可以创建嵌入未导出类型的导出类型。然后,此导出的类型将需要方法来实现

json.Marshaler
and
json.Unmarshaler
接口。

注意:所有代码未经测试,甚至可能无法编译。

type jsonData struct {    Field1 string    Field2 string}type JsonData struct {    jsonData}// Implement json.Unmarshallerfunc (d *JsonData) UnmarshalJSON(b []byte) error {    return json.Unmarshal(b, &d.jsonData)}// Getterfunc (d *JsonData) Field1() string {    return d.jsonData.Field1}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/4914446.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-12
下一篇 2022-11-12

发表评论

登录后才能评论

评论列表(0条)

保存