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

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

如何在 Go 中進行嵌套的 JSON 響應?

如何在 Go 中進行嵌套的 JSON 響應?

Go
當年話下 2023-06-19 11:08:08
我是 Go 的新手,需要一些幫助。在我的 PostgreSQL 數據庫中,我有 4 個表。他們稱:surveys、questions和options。surveys_questions_options它們看起來像這樣:surveys桌子:| survey_id (uuid4)                    | survey_name (varchar) ||--------------------------------------|-----------------------|| 0cf1cf18-d5fd-474e-a8be-754fbdc89720 | April                 || b9fg55d9-n5fy-s7fe-s5bh-856fbdc89720 | May                   |questions桌子:| question_id (int) | question_text (text)         ||-------------------|------------------------------|| 1                 | What is your favorite color? |options桌子:| option_id (int)   | option_text (text) ||-------------------|--------------------|| 1                 | red                || 2                 | blue               || 3                 | grey               || 4                 | green              || 5                 | brown              |surveys_questions_options表格結合了所有前三個表格的數據:| survey_id                            | question_id | option_id ||--------------------------------------|-------------|-----------|| 0cf1cf18-d5fd-474e-a8be-754fbdc89720 | 1           | 1         || 0cf1cf18-d5fd-474e-a8be-754fbdc89720 | 1           | 2         || 0cf1cf18-d5fd-474e-a8be-754fbdc89720 | 1           | 3         || b9fg55d9-n5fy-s7fe-s5bh-856fbdc89720 | 1           | 3         || b9fg55d9-n5fy-s7fe-s5bh-856fbdc89720 | 1           | 4         || b9fg55d9-n5fy-s7fe-s5bh-856fbdc89720 | 1           | 5         |如何在 Go 中進行嵌套的 JSON 響應?我使用 GORM 庫。我想要這樣的 JSON 響應:[    {        "survey_id": "0cf1cf18-d5fd-474e-a8be-754fbdc89720",        "survey_name": "April",        "questions": [            {                "question_id": 1,                "question_text": "What is your favorite color?",                "options": [                    {                        "option_id": 1,                        "option_text": "red"                    },
查看完整描述

3 回答

?
繁星coding

TA貢獻1797條經驗 獲得超4個贊

我們從您的代碼中遺漏了一些范圍,因此很難為您指明正確的方向。您是在詢問查詢 GORM 以便獲得[]Survey,還是在詢問編組[]Survey?無論如何,正如 slomek 所回答的那樣,您也應該將標簽添加到問題中。



查看完整回答
反對 回復 2023-06-19
?
撒科打諢

TA貢獻1934條經驗 獲得超2個贊

我不確定 GORM 部分,但是對于 JSON,您還需要在嵌套對象上添加結構標簽:


type Survey struct {

  ...

  Questions []Question `json:"questions"`

}


type Question struct {

  ...

  Options []Option `json:"options"`

}


查看完整回答
反對 回復 2023-06-19
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

但是,試試這個:To fetch nested data in m2m relation


type Survey struct {

  gorm.Model

  SurveyID string       `gorm:"primary_key" json:"survey_id"`

  SurveyName string     `gorm:"not null" json:"survey_name"`

  Questions []*Question `gorm:"many2many:survey_questions;"`

}


surveys := []*model.Survey{}

db := dbSession.Where(&model.Survey{SurveyID: id}).Preload("Questions").Find(&surveys)


查看完整回答
反對 回復 2023-06-19
  • 3 回答
  • 0 關注
  • 188 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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