为了账号安全,请及时绑定邮箱和手机立即绑定

json.Marshal(struct) 返回“{}”

json.Marshal(struct) 返回“{}”

Go
翻阅古今 2021-08-23 15:56:57
type TestObject struct {    kind string `json:"kind"`    id   string `json:"id, omitempty"`    name  string `json:"name"`    email string `json:"email"`}func TestCreateSingleItemResponse(t *testing.T) {    testObject := new(TestObject)    testObject.kind = "TestObject"    testObject.id = "f73h5jf8"    testObject.name = "Yuri Gagarin"    testObject.email = "Yuri.Gagarin@Vostok.com"    fmt.Println(testObject)    b, err := json.Marshal(testObject)    if err != nil {        fmt.Println(err)    }    fmt.Println(string(b[:]))}这是输出:[ `go test -test.run="^TestCreateSingleItemResponse$"` | done: 2.195666095s ]    {TestObject f73h5jf8 Yuri Gagarin Yuri.Gagarin@Vostok.com}    {}    PASS为什么 JSON 本质上是空的?
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

当第一个字母大写时,标识符对您要使用的任何代码段都是公开的。

当第一个字母是小写时,标识符是私有的,只能在它声明的包内访问。

例子


 var aName // private


 var BigBro // public (exported)


 var 123abc // illegal


 func (p *Person) SetEmail(email string) {  // public because SetEmail() function starts with upper case

    p.email = email

 }


 func (p Person) email() string { // private because email() function starts with lower case

    return p.email

 }


查看完整回答
反对 回复 2021-08-23
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

在 golang


在 struct 中的第一个字母必须大写,例如。电话号码 -> 电话号码


====== 添加细节


首先,我尝试这样编码


type Questions struct {

    id           string

    questionDesc string

    questionID   string

    ans          string

    choices      struct {

        choice1 string

        choice2 string

        choice3 string

        choice4 string

    }

}

golang compile 不是错误并且不显示警告。但响应是空的,因为某事


之后,我搜索谷歌找到了这篇文章


结构类型和结构类型文字 文章然后...我尝试编辑代码。


//Questions map field name like database

type Questions struct {

    ID           string

    QuestionDesc string

    QuestionID   string

    Ans          string

    Choices      struct {

        Choice1 string

        Choice2 string

        Choice3 string

        Choice4 string

    }

}

是工作。


希望得到帮助。


查看完整回答
反对 回复 2021-08-23
  • 3 回答
  • 0 关注
  • 188 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信