В Oracle у меня есть такая таблица:
| organization_id | ogranization_name | parent_id | level |
|-----------------|-------------------|-----------|-------|
| 1 | Facebook | | 0 |
| 2 | Instagram | 1 | 1 |
| 3 | Whatsapp | 1 | 1 |
| 4 | Dynamic | 2 | 2 |
| 5 | Google | | 0 |
В этой таблице показана иерархия организаций. Мне нужно создать древовидный вложенный ответ JSON в моем приложении Go:
[
{
"organization_id": 1
"ogranization_name": "Facebook",
"childs": [
{
"organization_id": 2,
"ogranization_name": "Instagram",
"childs": null
},
{
"organization_id": 3,
"ogranization_name": "Whatsapp",
"childs": [
{
"organization_id": 4,
"ogranization_name": "Dynamic",
"childs": null
}
]
}
]
},
{
"organization_id": 5
"ogranization_name": "Google",
"childs": null
}
]
Я делаю запрос к базе данных Oracle. Я также создаю структуру. Мой вопрос: как узнать, есть ли у организации дети или нет?
main.go:
type Organisation struct {
ID int `json:"organization_id"`
Name string `json:"ogranization_name"`
Children []Organisation `json:"childs"`
}
rows,err := db.Query("select * from ORG_TABLE")
if err != nil {
fmt.Println(err)
return
}
var organizations []Organization
for rows.Next() {
var organization Organization
err = rows.Scan(&organization.ID, &organization.Name, ???)
if err != nil {
fmt.Println(err)
return
}
}
organizations = append(organizations, organization)