JSON Voorhees
Killer JSON for C++
Loading...
Searching...
No Matches
deserialize.hpp File Reference

Deserialization of C++ types from a JSON AST. More...

#include <jsonv/config.hpp>
#include <jsonv/ast.hpp>
#include <jsonv/detail/scope_exit.hpp>
#include <jsonv/forward.hpp>
#include <jsonv/optional.hpp>
#include <jsonv/parse.hpp>
#include <jsonv/parse_index.hpp>
#include <jsonv/path.hpp>
#include <jsonv/reader.hpp>
#include <jsonv/serialization/context.hpp>
#include <jsonv/value.hpp>
#include <concepts>
#include <cstddef>
#include <exception>
#include <expected>
#include <functional>
#include <initializer_list>
#include <memory>
#include <new>
#include <optional>
#include <set>
#include <string>
#include <string_view>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include <variant>
#include <vector>
+ Include dependency graph for deserialize.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jsonv::deserialization_error
 Exception thrown if there is any problem running deserialize. More...
 
class  jsonv::deserialization_error::problem
 Description of a single problem with deserialization. More...
 
class  jsonv::deserialize_options
 Configuration for various deserialization options. This becomes part of the deserialization_context. More...
 
class  jsonv::deserializer
 A deserializer holds the method for converting JSON source into an arbitrary C++ type. More...
 
class  jsonv::deserialization_context
 Provides extra information to routines used for deserialization, collects the problems they encounter, and tracks where in the document they are. More...
 
class  jsonv::deserialization_context::path_scope
 An RAII guard naming one step of the deserialization path while it is alive. More...
 

Functions

JSONV_PUBLIC value jsonv::read_value (reader &from)
 Consume the JSON subtree under from starting at reader::current and return it as a fully materialised value tree.
 
JSONV_PUBLIC value jsonv::read_value (deserialization_context &context, reader &from)
 read_value for a deserializer.
 
template<typename T >
T jsonv::deserialize (const value &from, const formats &fmts)
 Deserialize a C++ value from from using the provided fmts.
 
template<typename T >
T jsonv::deserialize (const value &from, const formats &fmts, const deserialize_options &options)
 Deserialize a C++ value from from using the provided fmts and options.
 
template<typename T >
T jsonv::deserialize (const value &from)
 Deserialize a C++ value from from using jsonv::formats::global().
 
template<typename T >
T jsonv::deserialize (const value &from, const deserialize_options &options)
 Deserialize a C++ value from from using jsonv::formats::global() and the provided options.
 
template<typename T >
T jsonv::deserialize (reader &from, const formats &fmts=formats::global(), const deserialize_options &options=deserialize_options())
 Deserialize a C++ value from a reader using fmts (by default jsonv::formats::global()) and options.
 
template<typename T >
T jsonv::deserialize (reader &from, const deserialize_options &options)
 Deserialize a C++ value from a reader using jsonv::formats::global() and the provided options.
 
template<typename T >
T jsonv::deserialize (reader &&from, const formats &fmts=formats::global(), const deserialize_options &options=deserialize_options())
 Deserialize a C++ value from a reader which may own its source, using fmts and options.
 
template<typename T >
T jsonv::deserialize (reader &&from, const deserialize_options &options)
 Deserialize a C++ value from a reader which may own its source, using jsonv::formats::global() and the provided options.
 
template<typename T >
T jsonv::deserialize (reader &from, deserialization_context &context)
 Deserialize a C++ value from a reader through a context the caller built, exactly as the overloads above do with one built from formats and deserialize_options.
 
template<typename T >
T jsonv::deserialize (reader &&from, deserialization_context &context)
 Deserialize a C++ value from a reader through a context the caller built, exactly as the overloads above do with one built from formats and deserialize_options.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, const formats &fmts=formats::global(), const deserialize_options &options=deserialize_options())
 Deserialize a C++ value directly from JSON source text, parsed with parse_opts, using fmts (by default jsonv::formats::global()) and options.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, const deserialize_options &options)
 Deserialize a C++ value from JSON source text using jsonv::formats::global() and the provided options.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, const parse_options &parse_opts, const formats &fmts=formats::global(), const deserialize_options &options=deserialize_options())
 Deserialize a C++ value from JSON source text parsed with parse_opts, using fmts and options.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, const parse_options &parse_opts, const deserialize_options &options)
 Deserialize a C++ value from JSON source text parsed with parse_opts, using jsonv::formats::global() and the provided options.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, deserialization_context &context)
 Deserialize a C++ value directly from JSON source text, parsed with parse_opts where they are given, through a context the caller built.
 
template<typename T , typename TSource >
requires std::convertible_to<TSource, std::string_view>
T jsonv::deserialize (TSource &&source, const parse_options &parse_opts, deserialization_context &context)
 Deserialize a C++ value directly from JSON source text, parsed with parse_opts where they are given, through a context the caller built.
 

Detailed Description

Deserialization of C++ types from a JSON AST.

Copyright (c) 2015-2026 by Travis Gockel. All rights reserved.

This program is free software: you can redistribute it and/or modify it under the terms of the Apache License as published by the Apache Software Foundation, either version 2 of the License, or (at your option) any later version.

Author
Travis Gockel (travi.nosp@m.s@go.nosp@m.ckelh.nosp@m.ut.c.nosp@m.om)

Definition in file deserialize.hpp.