登录
首页 >  Golang >  Go问答

Golang中的动态字段

来源:stackoverflow

时间:2024-02-16 20:09:23 457浏览 收藏

亲爱的编程学习爱好者,如果你点开了这篇文章,说明你对《Golang中的动态字段》很感兴趣。本篇文章就来给大家详细解析一下,主要介绍一下,希望所有认真读完的童鞋们,都有实质性的提高。

问题内容

我想知道是否可以为 golang 创建一个可更改的结构。 事情是这样的。 json 有不同的对象。 它始终包含“meta”,但“data”将像下面一样更改。

{"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”定义?

感谢您提前回复。


正确答案


您可以使用 map[string]接口{}

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中的动态字段》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>