Получение данных из вложенной структуры
type User struct {
Id primitive.ObjectID `bson:"_id"`
Firstname string `bson:"firsname"`
Lastname string `bson:"lastname"`
Nickname string `bson:"nickname"`
Login string `bson:"login"`
Password string `bson:"password"`
News []News_item `bson:"news"`
}
type News_item struct {
Heading string `bson:" heading"`
Text string `bson:" text"`
Src_img string `bson:" src"`
}
exemple := &User{
Firstname: "Иван",
Lastname: "Иванов",
Nickname: "godmodeon",
Login: "qwerty",
Password: "123",
News: []News_item{
{
Heading: "Макороны",
Text: "Не солить",
Src_img: "upload-759203908.png"},
{
Heading: "Макороны",
Text: "Не солить",
Src_img: "upload-759203908.png"}}}
Как из такой структуры получить например Text?
Пробывал exemple.News.Text но получил ошибку
Ответы (2 шт):
Автор решения: Oleksiy Chechel
→ Ссылка
В данном случае, для получения каждого элемента массива, его нужно перебрать:
for _, v := range exemple.News {
fmt.Println(v.Text)
}
Или же получить нужный элемент по индексу. В таком случае нужно убедиться, что длинна массива News не нулевая
if len(exemple.News) > 0 {
fmt.Println(exemple.News[0].Text)
}
Автор решения: keepcalmist
→ Ссылка
Ты обращаешься к слайсу exemple.News без индекса. Если хочешь выбрать все поля Text, то пройдись по всему слайсу и клади поле Text в отдельную переменную.