В данном руководстве будет показано, как работать с JSON в Golang.

Содержание статьи

JSON в Golang

JSON (JavaScript Object Notation) является форматом обмена данными. Он не только легко читается и записывается людьми, но и без проблем анализируется и генерируется машинами. application/json является официальным Интернет медиа типом для JSON. Названием файлового расширения JSON является .json.

Премиум 👑 канал по Golang

Рекомендуем вам супер TELEGRAM канал по Golang где собраны все материалы для качественного изучения языка. Удивите всех своими знаниями на собеседовании! 😎

Подписаться на канал

Уроки, статьи и Видео

Мы публикуем в паблике ВК и Telegram качественные обучающие материалы для быстрого изучения Go. Подпишитесь на нас в ВК и в Telegram. Поддержите сообщество Go программистов.

Go в ВК ЧАТ в Telegram


Пакет encoding/json имплементирует кодирование и декодирование JSON.

Кодирование в формат JSON в Golang

Функция Marshal кодирует данные в формат JSON.

В данном примере мы трансформируем структуру и срез структуры в формат JSON.

Мы объявляем структуру User.

Создаем экземпляр структуры.

Кодируем структуру u1 в JSON с помощью функции Marshal.

Так как json_data является байтовым массивом, мы конвертируем его в строку с помощью строковой функции.

У нас есть срез users.

Кодируем срез users через функцию Marshal.

Выводим закодированный срез.

Таков результат вывода.

Декодирование данных из JSON в Golang

Функция Unmarshal декодирует данные формата JSON в Go структуру.

Мы декодируем JSON в структуру и срез структур Go.

У нас есть объект JSON, который преобразуется в байты.

Декодируем структуру u1 из формата JSON в структуру через функцию Unmarshal.

Декларируем срез структуры User.

Данный массив JSON будет декодирован в срез.

Мы декодируем JSON-массив в срез через функцию Unmarshal.

Выводим декодированный JSON массив, пользователь за пользователем.

Таков результат вывода.

Аккуратный вывод формата JSON в Golang

Аккуратно вывести данные JSON можно с помощью функции MarshalIndent.

В данном примере у нас есть карта звуков, которые произносят разные птицы. Результат вывода приводится в более красивый вид с помощью функции MarshalIndent.

Мы видим вывод с отступами, который читается намного удобнее.

Открываем JSON файл в Golang

В следующем примере, JSON будет открываться из файла.

Сохраните вышеуказанные данные в файле data.json.

Данный пример читает JSON из файла и декодирует их в срез структуры с пользователями.

Таков результат вывода.

Загружаем JSON по ссылке используя HttpClient

Пакет net/http предоставляет HTTP клиент и сервер.

Данный пример читает данные от веб-сервиса, используя встроенный в Go HTTP-клиент. Мы выполняем GET запрос к сервису, который возвращает данные об астронавтах Международной Космической Станции.

На данный момент на Космической Станции находятся три астронавта.

В данном руководстве мы рассмотрели работу с JSON в Golang.

5 1 голос
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии