登录
首页 >  Golang >  Go问答

管理go json结构的展示

来源:stackoverflow

时间:2024-02-24 15:42:24 178浏览 收藏

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

问题内容

我正在研究 golang 嵌套结构,并希望控制要在 json 中显示的子结构。

这是一个例子。如果我只想显示 citrus 中的 treeid 和名称字段,我正在尝试下面的符号,但它仍然打印整个 citrus 结构。我不想要 citrus 下的第三个结构变量。我该如何控制它?

type trees struct {
     Id    int
     CitrusTree *Citrus `json:"name,treeid,omitempty"`
     VegTree  *Veg
}
type Citrus struct {
     treeid  int
     name string
     substuct *someStruct
}

解决方案


根据 the documentation on Marshal,您使用 json:"-": 排除字段:

// field is ignored by this package.
field int `json:"-"`

请注意,json 标记的工作方式与文档中所述完全相同,其中不包括提供您想要包含的结构体字段的字段列表;文档中从未提及这一点,也不是该包的工作原理。该标签允许您指定要在 json 中使用的字段名称和几个标志(例如 omitempty)。将名称作为 - 传递表示应排除该字段。要获得您所描述的行为(并更正要导出的 citrus 的字段):

type trees struct {
     id    int
     citrustree *citrus
     vegtree  *veg
}
type citrus struct {
     treeid  int
     name string
     substuct *somestruct `json:"-"`
}

或者,您可能只能导出想要编组的字段,具体取决于您是否需要从其他包访问这些字段:

type trees struct {
     Id    int
     CitrusTree *Citrus
     VegTree  *Veg
}
type Citrus struct {
     Treeid  int
     Name string
     substuct *someStruct
}

由于无法对未导出的字段进行管理,因此它们将从 json 输出中排除。

理论要掌握,实操不能落!以上关于《管理go json结构的展示》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

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