如何使用 go 结构制作复杂的 json 数据?

我想构建一个像


{

  "data": {

      "posts": [

        {"title": "first", "body": "first body"},

        {"title": "second", "body": "second body"}

      ],

      "categories": [

        {"name": "red"},

        {"name": "white"}

      ]

  }

}

它包括两部分数据:帖子和类别。它们是不同的结构。但想把它们一起发送一次。


使用此代码


package main


import (

    "net/http"


    "github.com/labstack/echo/v4"

)


type Article struct {

    Data struct {

        Post []struct {

            Title string `json:"title"`

            Body  string `json:"body"`

        } `json:"posts"`

        Category []struct {

            Name string `json:"name"`

        } `json:"categories"`

    } `json:"data"`

}


func main() {

    e := echo.New()


    e.GET("/", func(c echo.Context) error {

        article := &Article{}

        data := article.Data


        post := data.Post

        post[0].Title = "first"

        post[0].Body = "first body"

        post[1].Title = "second"

        post[1].Body = "second body"


        category := data.Category

        category[0].Name = "red"

        category[1].Name = "white"


        return c.JSON(http.StatusOK, article)

    })


    e.Logger.Fatal(e.Start(":8008"))

}

我试图做一个根结构,然后定义它的子结构,然后一个接一个地将数据设置为树。Article


qq_遁去的一_1
浏览 72回答 1
1回答

料青山看我应如是

您可以通过为输出中的每个对象声明命名类型来简化所需的代码:type Post struct {    Title string `json:"title"`    Body  string `json:"body"`}type Category struct {    Name string `json:"name"`}type Data struct {    Posts      []Post     `json:"posts"`    Categories []Category `json:"categories"`}type Article struct {    Data Data}通过此更改,可以轻松编写复合文本:article := &Article{    Data: Data{Posts: []Post{        {            Title: "first",            Body:  "first body",        },        {            Title: "second",            Body:  "second body",        },    },        Categories: []Category{            {                Name: "red",            },            {                Name: "white",            },        },    },}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go