Golang 结构不会编组为 JSON
Golang Struct Won't Marshal to JSON
我正在尝试将 Go 中的结构编组到 JSON,但它不会编组,我不明白为什么。
我的结构定义
type PodsCondensed struct {
pods []PodCondensed `json:"pods"`
}
func (p *PodsCondensed) AddPod(pod PodCondensed) {
p.pods = append(p.pods, pod)
}
type PodCondensed struct {
name string `json:"name"`
colors []string `json:"colors"`
}
创建和编组测试结构
fake_pods := PodsCondensed{}
fake_pod := PodCondensed {
name: "tier2",
colors: []string{"blue", "green"},
}
fake_pods.AddPod(fake_pod)
fmt.Println(fake_pods.pods)
jPods, _ := json.Marshal(fake_pods)
fmt.Println(string(jPods))
输出
[{tier2 [blue green]}]
{}
我不确定这里的问题是什么,我为所有结构导出 json 数据,数据存储正确并且可以打印。它只是不会编组,这很奇怪,因为结构中包含的所有内容都可以单独编组为 JSON。
这是一个常见的错误:您没有在 PodsCondensed
和 PodCondensed
结构中导出值,因此 json 包无法使用它。为此,在变量名中使用大写字母:
type PodsCondensed struct {
Pods []PodCondensed `json:"pods"`
}
type PodCondensed struct {
Name string `json:"name"`
Colors []string `json:"colors"`
}
我正在尝试将 Go 中的结构编组到 JSON,但它不会编组,我不明白为什么。
我的结构定义
type PodsCondensed struct {
pods []PodCondensed `json:"pods"`
}
func (p *PodsCondensed) AddPod(pod PodCondensed) {
p.pods = append(p.pods, pod)
}
type PodCondensed struct {
name string `json:"name"`
colors []string `json:"colors"`
}
创建和编组测试结构
fake_pods := PodsCondensed{}
fake_pod := PodCondensed {
name: "tier2",
colors: []string{"blue", "green"},
}
fake_pods.AddPod(fake_pod)
fmt.Println(fake_pods.pods)
jPods, _ := json.Marshal(fake_pods)
fmt.Println(string(jPods))
输出
[{tier2 [blue green]}]
{}
我不确定这里的问题是什么,我为所有结构导出 json 数据,数据存储正确并且可以打印。它只是不会编组,这很奇怪,因为结构中包含的所有内容都可以单独编组为 JSON。
这是一个常见的错误:您没有在 PodsCondensed
和 PodCondensed
结构中导出值,因此 json 包无法使用它。为此,在变量名中使用大写字母:
type PodsCondensed struct {
Pods []PodCondensed `json:"pods"`
}
type PodCondensed struct {
Name string `json:"name"`
Colors []string `json:"colors"`
}