Golang 可变字段
Posted
技术标签:
【中文标题】Golang 可变字段【英文标题】:Golang Changeable field 【发布时间】:2021-12-08 02:13:42 【问题描述】:我想知道是否可以为 golang 制作一个可变结构。 事情就是这样。 JSON有不同的对象。 它始终包含“元”,但“数据”将如下更改。
"meta":"A":"AA, "B":"BB", "data":"C":"CC"
"meta":"A":"DD, "B":"EE", "data":"F":"FF"
在我的 golang 代码中,有很多 JSON 结构,如下所示。
type meta struct
A string `json:"A"`
B float64 `json:"B"`
type data1 struct
C int64 `json:"C"`
type JSON1 struct
MetaData meta `json:"meta"`
Contents data1 `json:"data"`
type data2 struct
C int64 `json:"F"`
type JSON2 struct
MetaData meta `json:"meta"`
Contents data2 `json:"data"`
所以,我需要定义所有的结构。 有什么办法可以让 Contents 字段可变以减少 JSON"A"、"B" 的定义?
感谢您提前回复。
【问题讨论】:
试试Contents interface `json:"data"`
【参考方案1】:
您可以使用map[string]interface
type JSON struct
MetaData meta `json:"meta"`
Contents map[string]interface `json:"data"`
然后访问如下数据:
var d JSON
...
content, ok := d.Contents["F"] // ok is false if "F" is not present
【讨论】:
以上是关于Golang 可变字段的主要内容,如果未能解决你的问题,请参考以下文章