gpt4 book ai didi

json - 我的结构没有编码为 json

转载 作者:IT老高 更新时间:2023-10-28 13:04:01 26 4
gpt4 key购买 nike

我在 Mac OS X 10.8.2 上使用 Go 1.0.3,我正在试验 json 包,试图将结构编码为 json,但我一直得到一个空 {} json 对象。

err 的值为 nil,所以根据 json.Marshal 函数没有错,结构是正确的。为什么会这样?

package main

import (
"encoding/json"
"fmt"
)

type Address struct {
street string
extended string
city string
state string
zip string
}

type Name struct {
first string
middle string
last string
}

type Person struct {
name Name
age int
address Address
phone string
}

func main() {
myname := Name{"Alfred", "H", "Eigenface"}
myaddr := Address{"42 Place Rd", "Unit 2i", "Placeton", "ST", "00921"}
me := Person{myname, 24, myaddr, "000 555-0001"}

b, err := json.Marshal(me)

if err != nil {
fmt.Println(err)
}

fmt.Println(string(b)) // err is nil, but b is empty, why?
fmt.Println("\n")
fmt.Println(me) // me is as expected, full of data
}

最佳答案

您必须公开要编码的字段。像这样:

type Address struct {
Street string
Extended string
City string
State string
Zip string
}

errnil 因为所有导出的字段(在本例中没有)都被正确编码。

工作示例:https://play.golang.org/p/9NH9Bog8_C6

查看文档 http://godoc.org/encoding/json/#Marshal

关于json - 我的结构没有编码为 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15452004/

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