Задать вопрос
@Sovin

Как обработать несуществующий json.RawMessage в GO?

Вообщем проблема:

Сайт может возвращать значение, а может и нет.

Когда я пытаюсь получить не существующие значения, то начинается паника.

var settingList []*Setting

settingList[0].online
settingList[0].status...

Например online может передастся, а status нет.
В php я это дела так:

isset($result[0]['setting']['online']) ? $result[0]['setting']['online'] : 'не указан';
  • Вопрос задан
  • 172 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
if len(settingList) == 0 {
    // данных нет
    return
}
for _, item := range settingList {
    if item.Online == "" {
        item.Online = "не указано"
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@PapaStifflera
Родился, вырос...

settingList[0].online
settingList[0].status...

Если поля структуры не экспортируемые, а этот кусок кода говорит, что это именно так, то все поля структуры будут иметь пустые значения.
Index out of range говорит о том, что settingList пуст.
Ответ написан
Комментировать
uvelichitel
@uvelichitel Куратор тега Go
habrahabr.ru/users/uvelichitel
if settingList[0].online != nil {...}
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы