...one of the most highly
regarded and expertly designed C++ library projects in the
world. — Herb Sutter and Andrei
Parse a buffer containing all or part of a complete JSON.
std::size_t write( char const* data, std::size_t size, std::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
after writing, call
Basic guarantee. Calls to
may throw. Upon error or exception, subsequent calls will fail until
reset is called to parse a new
The number of characters consumed from the buffer.
A pointer to a buffer of
The number of characters pointed to by
Set to the error, if any occurred.