JSON for Modern C++ version 3.10.0
The API side of this library is pretty good. I&#x27;ve generally avoided it due to the compile time, and preferred rapidjson due to both better performance and compile time if I wanted a C++ API, or cJSON if a C API is fine and I really just want an extremely low compile time (lately I&#x27;ve been playing with a live coding C++ context for a game engine, as a side project, I use cJSON there; rapidjson on main project though) (cJSON&#x27;s tradeoff is it sticks with a single global allocator that you can only customize in one location, and also seems to perf slightly lower on parse).<p>The cJSON&#x27;s C API or rapidjson&#x27;s somewhat less ergonomic API has felt fine because I usually have read &#x2F; write be reflective and don&#x27;t write that much manual JSON code.<p>Specifically for the case where compile time doesn&#x27;t matter and I need expressive JSON object mutation in C++ (or some tradeoff thereof), I think this library seems good.<p>Another big feature (which I feel like it could be louder about -- it really is a big one!) is that you can also generate binary data in a bunch of formats (BSON, CBOR, MessagePack and UJBJSON) that have a node structure similar to JSON&#x27;s -- from the same in-memory instances of this library&#x27;s data type. That sort of thing is something I&#x27;ve desired for various reasons (smaller file types with potentially better network send time for asynchronous sending &#x2F; downloads (for real-time multiplayer you still basically want to encode to something that doesn&#x27;t embed field string names)). I do think I may end up doing it at one layer above in the engine level and just have a different backend other than cJSON etc. too though...