有技术原因。除非已导出,否则json库无权使用反射查看字段。包只能查看其自己包中类型的未导出字段
为了解决您的问题,您可以做的是使用导出的字段创建未导出的类型。如果将Json毫无问题地传递给未导出的类型,它将解组,但是它不会显示在API文档中。然后,您可以创建嵌入未导出类型的导出类型。然后,此导出的类型将需要方法来实现
json.Marshalerand
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}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)