Golang Changeable field



我想知道是否有可能为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", "定义?

感谢您的提前回复。

您可以使用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

最新更新