Numbers
JSON has exactly one number type — an arbitrary-precision decimal, syntactically. C++ has several,
Custom types
json isn't a concrete class — it's using json = basic_json;, one particular instantiation of
Performance
The library's defaults are tuned for ergonomics, not throughput, and most of the performance