登录
首页 >  Golang >  Go问答

将 JSON 转换为 Go 结构

来源:stackoverflow

时间:2024-03-01 15:12:24 473浏览 收藏

来到golang学习网的大家,相信都是编程学习爱好者,希望在这里学习Golang相关编程知识。下面本篇文章就来带大家聊聊《将 JSON 转换为 Go 结构》,介绍一下,希望对大家的知识积累有所帮助,助力实战开发!

问题内容

我有一个类似的 json

{
    "company_id": "sahil",
    "company_name": "sahil",
    "ats_operators": ["123"],
    "ids": [
        {
            "duns_id": "1234"
        }
        ],
        "company_symbol": "1234"
}

我想将上面的 json 转换为 go 结构。

我有一种方法可以做到这一点:

type autogenerated struct {
    companyid    string   `json:"company_id"`
    companyname  string   `json:"company_name"`
    atsoperators []string `json:"ats_operators"`
    ids          []struct {
        dubnsid string `json:"dubns_id"`
    } `json:"ids"`
    companysymbol string `json:"company_symbol"`
}

但我想使用 go-map 而不是嵌套结构。

我尝试使用下面的代码,但它无法解析上面的 json。

type Test struct {
    CompanyID     string              `json:"company_id"`
    CompanyName   string              `json:"company_name"`
    CompanySymbol string              `json:"company_symbol"`
    IDs           map[string][]string `json:"ids"`
    AtsOperators  []string            `json:"ats_operators"`
}

请帮忙告诉我上面的 go 结构有什么问题?


解决方案


您可能必须使用这样的结构:

type autogenerated struct {
    companyid     string                   `json:"company_id"`
    companyname   string                   `json:"company_name"`
    atsoperators  []string                 `json:"ats_operators"`
    ids           []map[string]interface{} `json:"ids"`
    companysymbol string                   `json:"company_symbol"`
}

做这样的事情并尝试。如果您从 mongodb 获取数据,则保留 bson:"" 部分,否则只需 json 标签即可。

type DubnsID struct {
  DubnsId string `bson:"dubns_id" json:"dubns_id"`
}

type AutoGenerated struct {
 CompanyID     string    `bson:"company_id" json:"company_id"`
 CompanyName   string    `bson:"company_name" json:"company_name"`
 AtsOperators  []string  `bson:"ats_operators" json:"ats_operators"`
 Ids           map[string][]DubnsID `bson:"ids" json:"ids"`
 CompanySymbol string    `bson:"company_symbol" json:"company_symbol"`
}

好了,本文到此结束,带大家了解了《将 JSON 转换为 Go 结构》,希望本文对你有所帮助!关注golang学习网公众号,给大家分享更多Golang知识!

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