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,
    std::istream& is,
    boost::system::error_code& ec,
    parse_options const& opt = {}); (3)

template<
    class V>
void
parse_into(
    V& v,
    std::istream& is,
    std::error_code& ec,
    parse_options const& opt = {}); (4)

template<
    class V>
void
parse_into(
    V& v,
    string_view sv,
    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 an entire string in one step 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.

The function supports default constructible types satisfying SequenceContainer, arrays, arithmetic types, bool, std::tuple, std::pair, std::optional, std::nullptr_t, and structs and enums described using Boost.Describe.

Complexity

Linear in sv.size().

Exception Safety

Basic guarantee. Calls to memory_resource::allocate may throw.

Parameters

Name Description

v

The type to parse into.

sv

The string to parse.

ec

Set to the error, if any occurred.

opt

The options for the parser. If this parameter is omitted, the parser will accept only standard JSON.

is

The stream to read from.

Exceptions

Type Thrown On

boost::system::system_error

on failed parse.

Convenience header <boost/json.hpp>