mirror of
https://github.com/nlohmann/json.git
synced 2026-10-09 07:57:13 +00:00
Signed-off-by: Niels Lohmann <mail@nlohmann.me> # Conflicts: # docs/mkdocs/docs/api/json_sax/parse_error.md # docs/mkdocs/docs/features/parsing/index.md
2.9 KiB
2.9 KiB
nlohmann::json_sax
template<typename BasicJsonType>
struct json_sax;
This class describes the SAX interface used by sax_parse. Each function is called in
different situations while the input is parsed. The boolean return value informs the parser whether to continue
processing the input; for parse_error, it decides whether to
recover from the error.
For instance, parsing the JSON text {"a": [1, true]} triggers the following callbacks, in order:
sequenceDiagram
participant P as Parser
participant H as SAX handler
P->>H: start_object(elements)
P->>H: key("a")
P->>H: start_array(elements)
P->>H: number_unsigned(1)
P->>H: boolean(true)
P->>H: end_array()
P->>H: end_object()
Note elements is passed as #!cpp std::numeric_limits<std::size_t>::max() (i.e., "unknown") for JSON text input;
only binary formats such as CBOR or MessagePack may report the actual number of elements in start_object/
start_array. Also note that 1 is reported via number_unsigned rather than number_integer because it has no
leading - sign.
Template parameters
BasicJsonType- a specialization of
basic_json
Member types
- number_integer_t -
BasicJsonType's type for numbers (integer) - number_unsigned_t -
BasicJsonType's type for numbers (unsigned) - number_float_t -
BasicJsonType's type for numbers (floating-point) - string_t -
BasicJsonType's type for strings - binary_t -
BasicJsonType's type for binary arrays
Member functions
- binary (virtual) - a binary value was read
- boolean (virtual) - a boolean value was read
- end_array (virtual) - the end of an array was read
- end_object (virtual) - the end of an object was read
- key (virtual) - an object key was read
- null (virtual) - a null value was read
- number_float (virtual) - a floating-point number was read
- number_integer (virtual) - an integer number was read
- number_unsigned (virtual) - an unsigned integer number was read
- parse_error (virtual) - a parse error occurred
- start_array (virtual) - the beginning of an array was read
- start_object (virtual) - the beginning of an object was read
- string (virtual) - a string value was read
Version history
- Added in version 3.2.0.
- Support for binary values (
binary_t,binary) added in version 3.8.0.