亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 go 結構制作復雜的 json 數據?

如何使用 go 結構制作復雜的 json 數據?

Go
qq_遁去的一_1 2022-08-15 15:53:25
我想構建一個像{  "data": {      "posts": [        {"title": "first", "body": "first body"},        {"title": "second", "body": "second body"}      ],      "categories": [        {"name": "red"},        {"name": "white"}      ]  }}它包括兩部分數據:帖子和類別。它們是不同的結構。但想把它們一起發送一次。使用此代碼package mainimport (    "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
查看完整描述

1 回答

?
料青山看我應如是

TA貢獻1772條經驗 獲得超8個贊

您可以通過為輸出中的每個對象聲明命名類型來簡化所需的代碼:


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",

            },

        },

    },

}


查看完整回答
反對 回復 2022-08-15
  • 1 回答
  • 0 關注
  • 86 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號