Repolode
nlohmann

nlohmann/json

Библиотека C++11, состоящая из одного заголовочного файла и позволяющая разбирать, создавать, изменять и сериализовать JSON с синтаксисом в духе STL.

Звёзды
50,790
Форки
7,511
Открытые issues
19
Последний коммит
5 часов назад

Что это?

JSON for Modern C++ — библиотека C++ для работы со значениями JSON как с обычными типами данных. Значение JSON представлено одним классом basic_json (псевдоним — nlohmann::json): его можно создавать из литералов, контейнеров STL и пользовательских типов, а обращаться к нему — с помощью операторов и привычных методов контейнеров.

Вся библиотека поставляется в виде одного заголовочного файла, поэтому её можно добавить в проект без отдельной сборки и зависимостей. Она поддерживает JSON Pointer (RFC 6901), JSON Patch (RFC 6902) и JSON Merge Patch (RFC 7396), включая генерацию различий, а также преобразование в несколько бинарных форматов и обратно, например BSON, CBOR, MessagePack, UBJSON, BJData и BON8.

Пользовательские типы можно сопоставлять с JSON с помощью функций to_json и from_json или вспомогательных макросов, которые генерируют эти функции. В проекте опубликованы документация и справочник по API, а также указана интеграция с CMake и популярными менеджерами пакетов.

Ключевые возможности

  • 01Подключение через один заголовочный файл без зависимостей; библиотека написана на C++11.
  • 02Интуитивно понятный доступ к значениям JSON и их присваивание с синтаксисом в духе STL.
  • 03Разбор строк, потоков и диапазонов итераторов, а также сериализация с отступами.
  • 04Поддержка JSON Pointer, JSON Patch и JSON Merge Patch, включая генерацию различий.
  • 05Преобразование в бинарные форматы и обратно, например CBOR, MessagePack, BSON и UBJSON.
  • 06Макросы и функции преобразования для сопоставления пользовательских типов C++ с JSON.

Сценарии использования

  • Чтение файлов конфигурации или данных API в приложении на C++.
  • Создание ответов или сообщений JSON из структур данных C++.
  • Вычисление и применение JSON Patch между версиями документа.
  • Сериализация структур C++ в JSON или бинарные форматы для хранения или передачи.

Быстрый старт

  1. 1

    Добавьте единственный заголовочный файл json.hpp из репозитория в проект или установите его с помощью менеджера пакетов

  2. 2

    Подключите заголовочный файл в коде C++ с помощью #include <nlohmann/json.hpp> и начните использовать тип json

Что важно знать

  • В README указано, что существуют более быстрые библиотеки JSON, поэтому эта библиотека ставит удобство использования выше скорости.

Темы

Частые вопросы

Что такое json?
Библиотека C++11, состоящая из одного заголовочного файла и позволяющая разбирать, создавать, изменять и сериализовать JSON с синтаксисом в духе STL. JSON for Modern C++ — библиотека C++ для работы со значениями JSON как с обычными типами данных. Значение JSON представлено одним классом basic_json (псевдоним — nlohmann::json): его можно создавать из литералов, контейнеров STL и пользовательских типов, а обращаться к нему — с помощью операторов и привычных методов контейнеров.
json можно использовать бесплатно? Какая у него лицензия?
json распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
json всё ещё поддерживается?
Активно поддерживается. Последний коммит в json — 21 окт. 2026 г..
Для чего можно использовать json?
Чтение файлов конфигурации или данных API в приложении на C++. Создание ответов или сообщений JSON из структур данных C++. Вычисление и применение JSON Patch между версиями документа. Сериализация структур C++ в JSON или бинарные форматы для хранения или передачи.
Как установить json?
Добавьте единственный заголовочный файл json.hpp из репозитория в проект или установите его с помощью менеджера пакетов Подключите заголовочный файл в коде C++ с помощью #include <nlohmann/json.hpp> и начните использовать тип json
Где скачать json?
Исходный код и инструкции по установке — на GitHub: https://github.com/nlohmann/json

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты