Element access
There are four ways to read a key or index out of a json, and they disagree on what happens when
Iterating
Iterating a json container gives you values, never key-value pairs — a design choice inherited
Type checking
This is where the library's "intuitive syntax" goal collides most directly with C++ overload
Pointer and patch
RFC 6901 (JSON Pointer) and RFC 6902 (JSON Patch) give you standardized addressing and diffing for
Merging
"Combine two documents" turns out to mean three different, non-interchangeable operations in this