The main parts of the JSON library are
- the Value Class to handle (extended) JSON data (JAXN data) in memory,
- the Events Interface as universal adapter between different parts of the library (and other libraries), and
- the Type Traits to control the interaction between C++ data types and the Value Class and Events Interface.
- The Value Class can be customised with Type Traits and a custom Base class.
- The Events Interface is used to convert the Value Class from and to external representations.
- One or more Events Transformers can be used to modify, filter, ... Events and to send them to multiple Consumers.
- The Type Traits are used to convert the Value Class from and to arbitrary C++ data types.
- The Type Traits also generate Events, and thus external representations, directly from C++ data types, and
- are used to directly and efficiently parse external representations into arbitrary C++ data types.
- The Value Class can use views to strings and binary data to prevent memory allocations and copying.
- The Value Class can use pointers to other Value Class instances to re-use (parts of) other Values.
- The Value Class can use pointers to arbitrary objects (restricts the set of functions on the Value).
Copyright (c) 2018-2023 Dr. Colin Hirsch and Daniel Frey