Reflection-based JSON in C++ at Gigabytes per Second -- Daniel Lemire
JSON is a widely-used format for data exchange, but in C++, handling JSON efficiently can be challenging. While current solutions like simdjson offer high-speed processing, upcoming features in C++26, such as powerful reflection, promise to simplify and accelerate the serialization and deserialization of JSON, making it both faster and more convenient for developers.
Reflection-based JSON in C++ at Gigabytes per Second
by Daniel Lemire
From the article:
JSON (JavaScript Object Notation) is a popular format for storing and transmitting data. It uses human-readable text to represent structured data in the form of attribute–value pairs and arrays. E.g., {"age":5, "name":"Daniel", toys:["wooden dog", "little car"]}. Ingesting and producing JSON documents can be a performance bottleneck. Thankfully, a few JSON parsers such as simdjson have shown that we can process JSON at high speeds, reaching gigabytes per second.
However, producing and ingesting JSON data can remain a chore in C++. The programmer often needs to address potential errors such as unexpected content.
Yet, often, the programmer only needs to map the content to and from a native C/C++ data structure.

We’ve seen formatting for simple classes and more complicated types. Spencer Collyer finishes his series by showing us how to apply specific formatting to existing classes.
Previously, we explored a basic implementation of