pjson is an owning, mutable JSON value for C++11. The generated reference is the symbol-by-symbol companion to the tutorials. It describes the public header shipped to applications; implementation-only types are intentionally excluded.
Start here
- ByteDance::pjson is the central DOM value and entry point.
- ByteDance::pjson::Allocator, ByteDance::pjson::ValueDeleter, and ByteDance::pjson::unique_ptr support allocator-bound persistent DOM storage.
- ByteDance::pjson::ParseOptions configures duplicate keys and input budgets; every parser enforces RFC 8259 syntax.
- ByteDance::pjson::ParseError reports non-throwing parse failures.
- ByteDance::pjson::PointerError and ByteDance::pjson::PatchError describe RFC 6901, RFC 6902, and RFC 7396 failures.
- ByteDance::pjson::PatchOptions bounds transactional patch amplification.
- ByteDance::pjson::SerializeOptions controls formatting, escaping, and key order, and bounds output size.
- ByteDance::pjson::tryGet(), ByteDance::pjson::StringView, and ByteDance::pjson::findPointer() provide strict, non-vivifying reads.
- ByteDance::pjson::applyPatch() and ByteDance::pjson::applyMergePatch() apply atomic RFC 6902 and RFC 7396 updates.
- ByteDance::pjson::SaxHandler supports incremental, non-DOM parsing.
- ByteDance::pjson::SchemaOptions and ByteDance::pjson::SchemaError configure and report schema validation.
Use the navigation tree to browse classes, nested option/error types, enums, typedefs, and every public overload. Each entry is generated from the current installed header, so the reference follows the API as it evolves.
Guides
The two migration guides call out behavioral differences that a mechanical API rename would miss: ownership, vivifying access, signed numeric storage, duplicate-key policy, allocator provenance and lifetime, streaming, schema coverage, and pjson's status-based error model.
Build this reference locally
With Doxygen and Python 3 installed:
cmake -S . -B out/build-docs \
-DPJSON_BUILD_TESTS=OFF \
-DPJSON_BUILD_EXAMPLES=OFF \
-DPJSON_BUILD_BENCHMARKS=OFF \
-DPJSON_BUILD_DOCS=ON
cmake --build out/build-docs --target pjson-docs-check
Open out/build-docs/docs/reference/html/index.html. The build treats Doxygen warnings as errors and validates the generated XML so omitted public API families fail locally and in CI.