...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Parse a buffer containing all or part of a complete JSON.
std::size_t write( string_view s, error_code& ec);
This function parses a all or part of a JSON contained in the specified character buffer. The entire buffer must be consumed; if there are additional characters past the end of the complete JSON, the parse fails and an error is returned.
stream_parser p; // construct a parser std::size_t n; // number of characters used n = p.write( "[1,2" ); // parse some of the JSON assert( n == 4 ); // all characters consumed n = p.write( "3,4]" ); // parse the rest of the JSON assert( n == 4 ); // all characters consumed value jv = p.release(); // take ownership of the value
To indicate there are no more character buffers, such as when done
returns false
after writing, call finish
.
Linear in size
.
Basic guarantee. Calls to memory_resource::allocate
may throw. Upon error or exception, subsequent calls will fail until
reset
is called to parse a new
JSON.
The number of characters consumed from the buffer.
Name |
Description |
---|---|
|
The character string to parse. |
|
Set to the error, if any occurred. |