Как правильно разобрать данные из модели?

Есть запрос в таблицу, который возвращает данные в типе:
[]*User

тоесть в некую функцию я отправляю usr, err := m.User(some_username)
а она возвращает мне данные по модели []*User
Ну и сморю, что там в консоли:
fmt.Println(usr)
Выдает:
[0xc4201386f0]

Разбираю в строку я ее таким путем:
respMySql, err := json.Marshal(usr)
через fmt.Println(string (respMySql))
получаю вменяемую строку вида:
[{"ID":4,"Username":"SomeLogin","Password":"21232f297a57a5a743894ea0e4a801fc3"}]

вот теперь стоит вопрос, как мне разобрать эту строку в вид key: value, и обращаться к ее ключам Username Password ID?

подкиньте пример реализации. Unmarshal выдает пустоту.
  • Вопрос задан
  • 84 просмотра
Решения вопроса 1
@danforth
Не совсем понял вопроса. Если у вас возвращается []*User, то это слайс ваших пользователей. User это кастомный тип, основанный на чем? Если это структура, то у неё есть поля. Если type User map[string]string, то это мапа. Но судя по вашему JSON это все же структура.

Для того, чтобы пройтись по всем пользователям, используйте for range, вот так:
for _, user := range users {
    fmt.Printf("%d - %s\r\n", user.ID, user.Name) // выведет пользователей в формате ID - Имя.
}


Если вам нужно конкретно обратиться к определенному индексу, тогда так:
fmt.Printf("%d - %s\r\n", users[1].ID, users[1].Name)

Выведет тоже самое, но вы обратились к конкретному юзеру в слайсе.

Если я не так ответил, уточните ваш вопрос.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы