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

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

JSON в Golang

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

Форум Гоферов

Мы работаем над форумом для программистов на Golang. Очень нужны модераторы которые хотят помочь с ответами для новичков и помочь в развитии Go-сообщества.

Go на Форум

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

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

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.

Понравилась статья?

Поддержи наш проект, чтобы мы могли создать больше хорошего контента!