@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'] : 'не указан';
  • Вопрос задан
  • 125 просмотров
Решения вопроса 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 пуст.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
от 120 000 до 170 000 ₽
LifeStyle platform Москва
от 180 000 до 250 000 ₽
Enapter Санкт-Петербург
от 160 000 до 240 000 ₽
21 февр. 2020, в 16:07
80000 руб./за проект
21 февр. 2020, в 15:34
75000 руб./за проект
21 февр. 2020, в 14:34
30000 руб./за проект