프로젝트 소개

nlohmann/json(JSON for Modern C++)은 C++11 이상에서 JSON을 지원하는 헤더 온리(header-only) C++ 라이브러리다. 전체 구현이 단일 파일(single_include/nlohmann/json.hpp)에 들어 있고 외부 의존성이나 복잡한 빌드 설정이 필요 없으며, 여러 패키지 관리자를 통해 배포된다. 연산자 오버로딩과 초기화 리스트를 사용해 객체와 배열을 직관적으로 구성하도록 설계되어, C++에서 JSON을 일급 데이터 타입처럼 다룰 수 있게 한다. 이 라이브러리는 문자열, 스트림, 반복자 범위로부터의 파싱과 직렬화, 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만 지원하며, 다른 인코딩은 덤프 시 오류 처리기(error-handler)를 설정해야 한다.