parse_into
Parse a JSON text into a user-defined object.
Synopsis
Defined in header <boost/json/parse_into.hpp>.
template<
class V>
void
parse_into(
V& v,
string_view sv,
boost::system::error_code& ec,
parse_options const& opt = {}); (1)
template<
class V>
void
parse_into(
V& v,
string_view sv,
std::error_code& ec,
parse_options const& opt = {}); (2)
template<
class V>
void
parse_into(
V& v,
string_view sv,
parse_options const& opt = {}); (3)
template<
class V>
void
parse_into(
V& v,
std::istream& is,
boost::system::error_code& ec,
parse_options const& opt = {}); (4)
template<
class V>
void
parse_into(
V& v,
std::istream& is,
std::error_code& ec,
parse_options const& opt = {}); (5)
template<
class V>
void
parse_into(
V& v,
std::istream& is,
parse_options const& opt = {}); (6)
Description
This function parses a string and fills an object provided by the user. If the buffer does not contain a complete serialized JSON text, an error occurs. In this case v may be partially filled. Overloads (1)–(3) consume the entire string s. Overloads (4)–(6) read characters from the input stream is. All overloads consume all available characters, and produce an error if there are non-whitespace characters after the initial JSON.
The function supports default constructible types satisfying SequenceContainer, arrays, arithmetic types, bool, std::tuple, std::pair, std::optional, std::variant, std::nullptr_t, and structs and enums described using Boost.Describe.
Complexity
-
(1)–(3) linear in
sv.size(). -
(4)–(6) linear in the size of consumed input.
Exception Safety
Basic guarantee. Calls to memory_resource::allocate may throw. Overloads (3) and (6) throw boost::system::system_error on error. The stream is may throw as described by std::ios::exceptions.
Parameters
| Name | Description |
|---|---|
|
The type to parse into. |
|
The string to parse. |
|
Set to the error, if any occurred. |
|
The options for the parser. If this parameter is omitted, the parser will accept only standard JSON. |
|
The stream to read from. |
Convenience header <boost/json.hpp>