使用golang生成嵌套JSON

使用golang生成嵌套JSON,go,Go,所以我在这里做错了什么,我不知道如何生成嵌套JSON结构: 我得到“复合文字中缺少类型”异常。 这很直截了当,你这样定义它: type PlayerRequestBody struct { Account string `json:"account"` Team string `json:"team"` Player string `json:"player"` Data DataRequest

所以我在这里做错了什么,我不知道如何生成嵌套JSON结构:

我得到“复合文字中缺少类型”异常。


这很直截了当,你这样定义它:

type PlayerRequestBody struct {
    Account string          `json:"account"`
    Team    string          `json:"team"`
    Player  string          `json:"player"`
    Data    DataRequestBody `json:"data"`

 l := PlayerRequestBody{
        Account: "my-account",
        Team:    "12345",
        Player:  "23424234",
        Data:    DataRequestBody{FamilyRequestBody{Family:"hello"}},
    }
但我想让它这样使用它:

type PlayerRequestBody struct {
    Account string           `json:"account"`
    Team    string           `json:"team"`
    Player  string           `json:"player"`
    Data    FamilyRequestBody`json:"family"`

 l := PlayerRequestBody{
        Account: "my-account",
        Team:    "12345",
        Player:  "23424234",
        Data:    {Family:"hello"}},
    }
您的字段
Data
来自类型
DataRequestBody
,与您的结构中定义的类似,您不能将另一个结构放在那里。在golang没有继承权,这可能也不是你想要的

我同意OP的问题与JSON无关,就像评论中提到的Flimzy一样,但我留下了链接,以便更好地衡量


如果这不是您想要的,请查看许多其他问题,解释json与go的工作原理或使用,或者。

问题的可能重复(因此答案)与json无关,因此建议OP搜索其他json问题,并链接到json相关文档,这并不是最好的建议。你的答案本身并没有错,但并不完整。请显示您所指的完整定义。最好的做法是在
DataRequestBody
中使用一个命名字段。这就是我的进步,但我仍然不明白到底是怎么回事@Artur不在另一个结构中定义stuct,它不是惯用的。@sHartmann这只是为了说明,不会在最终代码中这样做
type PlayerRequestBody struct {
    Account string           `json:"account"`
    Team    string           `json:"team"`
    Player  string           `json:"player"`
    Data    FamilyRequestBody`json:"family"`

 l := PlayerRequestBody{
        Account: "my-account",
        Team:    "12345",
        Player:  "23424234",
        Data:    {Family:"hello"}},
    }