gpt4 book ai didi

json - go json 结构中的控件显示

转载 作者:行者123 更新时间:2023-12-01 22:12:11 27 4
gpt4 key购买 nike

我正在研究一个 golang 嵌套结构,并希望控制在 JSON 中显示哪些子结构。
这是一个例子。如果我只想显示来自 Citrus 的 treeid 和 name 字段,我正在尝试使用以下符号,但它仍在打印整个 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 输出中排除。

关于json - go json 结构中的控件显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62940693/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com