Об этом проекте

nlohmann/json (JSON for Modern C++) — это header-only библиотека C++, обеспечивающая поддержку JSON для C++11 и более поздних версий. Вся реализация содержится в одном файле (single_include/nlohmann/json.hpp), не требует внешних зависимостей или сложной настройки сборки и распространяется через множество менеджеров пакетов. Она создана так, чтобы JSON ощущался как первоклассный тип данных в C++, используя перегрузку операторов и списки инициализации для интуитивного создания объектов и массивов. Библиотека включает разбор и сериализацию из строк, потоков и диапазонов итераторов и в них; доступ к элементам в стиле STL; а также преобразования между значениями JSON и стандартными типами C++, включая произвольные пользовательские типы через специализацию. Она реализует JSON Pointer, JSON Patch и JSON Merge Patch для запросов и изменения документов, а также поддерживает несколько форматов бинарной сериализации: BSON, CBOR, MessagePack, UBJSON и BJData. Также доступен интерфейс разбора в стиле SAX для событийно-ориентированного использования. Согласно README, проект уделяет особое внимание тщательному тестированию: 100% покрытие модульными тестами, проверки памяти с помощью Valgrind и санитайзеров Clang, а также непрерывное фаззинг-тестирование через Google OSS-Fuzz. Документация, FAQ, справочник по API и примеры размещены на json.nlohmann.me. Варианты интеграции включают CMake, менеджеры пакетов и pkg-config. Библиотека поддерживает только UTF-8; для других кодировок требуется настройка обработчика ошибок во время дампа.