Я пытаюсь найти эффективный способ преобразования плоских данных из таблицы БД во вложенный JSON в Go.
Это мой код для загрузки набора данных в кусок структуры:
https://play.golang.org/p/_80nASVgds-
Который будет производить следующий JSON:
[{
"Globe": "World",
"Hemisphere": "Northern",
"Country": "USA"
}, {
"Globe": "World",
"Hemisphere": "Southern",
"Country": "Australia"
}, {
"Globe": "World",
"Hemisphere": "Southern",
"Country": "Brazil"
}, {
"Globe": "World",
"Hemisphere": "Southern",
"Country": "South Africa"
}, {
"Globe": "World",
"Hemisphere": "Northern",
"Country": "Spain"
}]
Я бы хотел иметь возможность кодировать один и тот же набор данных в нечто вроде:
type Globe struct {
Name string
Hemisphere []Hemisphere
}
type Hemisphere struct {
Name string
Country []Country
}
type Country struct {
Name string
}
Так что я мог бы собрать Глоуба и получить тот же набор данных во вложенной форме как таковой:
https://play.golang.org/p/r9OlCw_EwSA
{
"Name": "World",
"Hemisphere": [{
"Name": "Northern",
"Country": [{
"Name": "USA"
}, {
"Name": "Spain"
}]
}, {
"Name": "Southern",
"Country": [{
"Name": "Australia"
}, {
"Name": "South Africa"
}, {
"Name": "Brazil"
}]
}]
}
Существует ли какой-либо эффективный способ сделать это, кроме как постоянно циклически проходить по набору данных и проверять, было ли данное свойство уже добавлено в структуру? Мой набор данных не упорядочен, что еще более затрудняет управление добавлениями через циклы.