Библиотека форматирования C++ — быстрая и типобезопасная альтернатива C stdio и iostreams с поддержкой C++20 std::format.
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
Добавьте единственный заголовочный файл json.hpp из репозитория в проект или установите его с помощью менеджера пакетов
- 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 обновляется ежедневно.
Похожие проекты
Приложение для рабочего стола и расширение VS Code: создание, редактирование и сравнение JSON-документов, а также генерация JSON из классов языков программирования.
Компактное, удобное для чтения представление данных JSON, которое сокращает расход токенов при передаче структурированных данных в промпты LLM.
Парсер JSON на C++, использующий SIMD-инструкции для обработки гигабайтов JSON в секунду с полной проверкой данных.
Библиотека Java для преобразования Java-объектов в JSON и обратно, в том числе объектов, исходный код которых недоступен.
Быстрый микрофреймворк на C++ в стиле Flask для создания HTTP- и WebSocket-сервисов: header-only и простой в использовании.