mirror of
https://github.com/nlohmann/json.git
synced 2026-10-03 13:10:33 +00:00
2.2 KiB
2.2 KiB
Integration
There are several ways to add this header-only library to a C++ project. The following flowchart summarizes how to pick one:
flowchart TD
A[Add the library to a C++ project] --> B{Already using CMake?}
B -- no --> C{Using pkg-config or plain Makefiles?}
C -- yes --> D[pkg-config]
C -- no --> E[Copy the single header]
B -- yes --> F{Library installed system-wide?}
F -- yes --> G["find_package()"]
F -- no --> H{Use a package manager?}
H -- yes --> I[Package manager]
H -- no --> J["add_subdirectory() or FetchContent"]
- Copy the single header, as described below — no build-system integration required.
- CMake: use
find_package()if the library is already installed,add_subdirectory()to embed the source tree, orFetchContentto download it at configure time; see CMake. - Package managers: install the library with a package manager such as Homebrew, Conan, or vcpkg; see Package Managers.
- pkg-config: if you use bare Makefiles instead of CMake, pkg-config can supply the include flags for an already-installed library.
Once the library is integrated, see the Migration Guide for how to keep your code future-proof across releases.
Header only
json.hpp is the single required
file in single_include/nlohmann or released here. You need to add
#include <nlohmann/json.hpp>
// for convenience
using json = nlohmann::json;
to the files you want to process JSON and set the necessary switches to enable C++11 (e.g., -std=c++11 for GCC and
Clang).
You can further use file
single_include/nlohmann/json_fwd.hpp
for forward declarations, and file
single_include/nlohmann/json_literals.hpp
for the user-defined string literals if you define
JSON_NO_AUTOMATIC_UDLS.