登录
首页 >  Golang >  Go问答

使用 golang 生成嵌套 JSON

来源:stackoverflow

时间:2024-04-26 09:42:34 285浏览 收藏

编程并不是一个机械性的工作,而是需要有思考,有创新的工作,语法是固定的,但解决问题的思路则是依靠人的思维,这就需要我们坚持学习和更新自己的知识。今天golang学习网就整理分享《使用 golang 生成嵌套 JSON》,文章讲解的知识点主要包括,如果你对Golang方面的知识点感兴趣,就不要错过golang学习网,在这可以对大家的知识积累有所帮助,助力开发能力的提升。

问题内容

那么我在这里做错了什么,我并没有真正理解如何生成嵌套的 json 结构:

我收到“复合文字中缺少类型”异常。 https://play.golang.org/p/pa1fpbqhbb0

package main

import "fmt"

type FamilyRequestBody struct {
    Family string `json:"family"`
}

type DataRequestBody struct {
    Family FamilyRequestBody `json:"family"`
}

type EventRequestBody struct {
    Account string `json:"account"`
    Player  string `json:"player"`
    Count   int    `json:"count"`
}

type TeamRequestBody struct {
    Account string `json:"account"`
    Team    string `json:"team"`
}

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

func main() {
    l := PlayerRequestBody{
        Account: "my-account",
        Team:    "12345",
        Player:  "23424234",
        Data:    {Family: "12345"},
    }

    fmt.Printf("%#v\n", l)
}

解决方案


它非常简单,您是这样定义的:

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无关,就像评论中提到的f​​limzy一样,但我留下了良好措施的链接。

如果这不是您想要的,请查看许多其他问题来解释 go 中的 json 如何工作,或者使用 gobyexampledocs

理论要掌握,实操不能落!以上关于《使用 golang 生成嵌套 JSON》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>