登录
首页 >  Golang >  Go问答

使用 json.marshal 时如何小写嵌套结构名称?

来源:stackoverflow

时间:2024-02-12 16:00:24 228浏览 收藏

哈喽!今天心血来潮给大家带来了《使用 json.marshal 时如何小写嵌套结构名称?》,想必大家应该对Golang都不陌生吧,那么阅读本文就都不会很困难,以下内容主要涉及到,若是你正在学习Golang,千万别错过这篇文章~希望能帮助到你!

问题内容

我正在使用一些数据公开 rest 端点。这是一个结构,说:

type status struct {
    config struct {
        allow   bool `json:"allow"`
        expired bool `json:"expired"`
    }
    database struct {
        healthy          bool   `json:"healthy"`
        waitcount        int64  `json:"wait_count"`
    }
}

我使用 json 标签来表示调用端点时结构字段的外观。使用上述内容,我得到以下有效负载作为响应:

{
    "Config": {
        "allow": false,
        "expired": false,
    },
    "Database": {
        "healthy": true,
        "wait_count": 1,
    },
}

我希望 configdatabase 为小写,这意味着 configdatabase。但是,将它们更改为 go 代码中的值意味着 "encoding/json" 包无法“看到”它们,因为它们未导出到包范围之外。

如何在 json 响应有效负载中小写嵌套结构?


正确答案


嵌套结构是包含结构中的一个字段。像处理其他字段一样添加字段标签:

type status struct {
    Config struct {
        Allow   bool `json:"allow"`
        Expired bool `json:"expired"`
    } `json:"config"` // <-- add tag here ...
    Database struct {
        Healthy          bool   `json:"healthy"`
        WaitCount        int64  `json:"wait_count"`
    } `json:"database"` // <-- ... and here
}

终于介绍完啦!小伙伴们,这篇关于《使用 json.marshal 时如何小写嵌套结构名称?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

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