Golang сканирует строки db в json строки и массива

Я пытаюсь получить вывод из БД, используя внутреннее соединение с 3 таблицами, например, таблицы A и B.

Структура вывода

      type C struct {
    A         A         `json:"A"`
    B         B         `json:"B"`
    SecID    int64        `json:"section_id"`
    SecName  string       `json:"section_name"`
}

type A struct {
    AID         int64           `json:"aid"`
    Name       string          `json:"name"`
    Des        string          `json:"des"`
    Price      string          `json:"price"`
}

type B struct {
    BID         int64           `json:"bid"`
    Answer     string         `json::answer"`
    Score      int16           `json:"score"`
}

Запрос к БД

      var cs []C
rows, err := db.Query(sqlStatement, RequestBody.tID)
for rows.Next() {
    var c C
    err = rows.Scan(&c.A.ID, &c.A.Name, &c.A.Des, &c.A.Price, &c.A.Price, &c.B.ID, &c.B.Answer, &c.B.Score, &c.SecID, &c.SecName)
     cs = append(cs, c)

Приведенный выше код дает следующий результат:

      [
  {
    "a": {
      "aid": 1,
      "name": "XXXXXX",
      "description": "addd kdjd a jdljljlad",
      "price": "10",
    },
    "section_id": 1,
    "section_name": "personal details",
    "b": {
      "bid": 1,
      "answer": "adfdf d fd d f",
      "score": 0
    }
  },
  {
    "a": {
      "aid": 1,
      "name": "XXXXXX",
      "description": "addd kdjd a jdljljlad",
      "price": "10",
    },
    "section_id": 1,
    "section_name": "personal details",
    "b": {
      "bid": 2,
      "answer": "adfdf d fd d f",
      "score": 10
    }
  }
]

Но я пытаюсь объединить поле «b» в одно поле со списком словарей и писать поле «а» только один раз, поскольку значения повторяются.

      [
  {
    "a": {
      "aid": 1,
      "name": "XXXXXX",
      "description": "addd kdjd a jdljljlad",
      "price": "10",
      
    },
    "b": [
      {
        "section_id": 1,
        "section_name": "personal details",
        "bid": 1,
        "answer": "adfdf d fd d f",
        "score": 0
      },
      {
        "section_id": 1,
        "section_name": "personal details",
        "bid": 2,
        "answer": "adfdf d fd d f",
        "score": 10
      }
    ]
  }
]

Пытался изменить структуру, но, похоже, не работает.

0 ответов

Другие вопросы по тегам