  JSON is a popular standard for data interchange on the Internet. Ingesting
JSON documents can be a performance bottleneck. A popular parsing strategy
consists in converting the input text into a tree-based data structure --
sometimes called a Document Object Model or DOM. We designed and implemented a
novel JSON parsing interface -- called On-Demand -- that appears to the
programmer like a conventional DOM-based approach. However, the underlying
implementation is a pointer iterating through the content, only materializing
the results (objects, arrays, strings, numbers) lazily.On recent commodity
processors, an implementation of our approach provides superior performance in
multiple benchmarks. To ensure reproducibility, our work is freely available as
open source software. Several systems use On-Demand: e.g., Apache Doris, the
Node.js JavaScript runtime, Milvus, and Velox.
