Как сделать вложенный ответ JSON из данных SQL в GO? - PullRequest
0 голосов
/ 10 октября 2019

Я новичок в языке go, и у меня возникли проблемы с вложенными данными.

У меня есть 2 таблицы для получения меню и подменю, они называются tbl_Privmenu и tbl_privsubmenu ...

Онивыглядеть так:

tbl_privmenu

| privmenuid | usergroupid | usergroupname   | refaccmenuid | refaccmenudesc  |
|------------|-------------|-----------------|--------------|-----------------|
| 1          | 1           | usergroup admin | 1            | acces menu app  |
| 2          | 1           | usergroup admin | 2            | acces menu user |
| 3          | 1           | usergroup admin | 5            | Akses Data      |

tbl_privsubmenu

| privsubmenuid | refaccmenuid | refsubmenuid | refaccmenudesc  | refmenuname |
|---------------|--------------|--------------|-----------------|-------------|
| 1             | 1            | 1            | acces menu app  | Application |
| 2             | 1            | 2            | acces menu user | User        |

Как сделать вложенный ответ из данных sql в Go? я хочу показать ответ как это:

{
    "resultmenu": [
            {
                "Usergroupid": "1",
                "Refaccessmenuid": "1",
                "Refaccessmenuid1": "",
                "Refaccessmenudesc": "acces menu app",
                "Refmenuid": "1",
                "Refmenuname": "Application",
                "Urlmenu": "http://asal.com",
                "Iconmenu": "fa fa-gear",
                "Submenu": [{
                    "Refsubmenuid": 1
                },{
                    "Refsubmenuid": 2
                }]
            },
            {
                "Usergroupid": "1",
                "Refaccessmenuid": "2",
                "Refaccessmenuid1": "",
                "Refaccessmenudesc": "acces menu user",
                "Refmenuid": "2",
                "Refmenuname": "User",
                "Urlmenu": "http://www.tes.com",
                "Iconmenu": "fa fa-user",
                "Refsubmenuid": null
            }
        ]
}

и это моя модель:

type (
    LoginPrivMenuGetResult struct {
        Usergroupid       Mstring.NullString
        Refaccessmenuid   Mstring.NullString
        Refaccessmenuid1  string
        Refaccessmenudesc Mstring.NullString
        Refmenuid         Mstring.NullString
        Refmenuname       Mstring.NullString
        Urlmenu           Mstring.NullString
        Iconmenu          Mstring.NullString
        Submenu           LoginPrivSubMenuGetResultJSON
    }

    LoginPrivSubMenuGetResult struct {
        Refsubmenuid Mstring.NullString
    }
)
...