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

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

#include <jsonv/config.hpp>
#include <jsonv/ast.hpp>
#include <jsonv/detail/scope_exit.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 <initializer_list>
#include <memory>
#include <new>
#include <optional>
#include <string>
#include <string_view>
#include <type_traits>
#include <typeinfo>
#include <utility>
#include <variant>
#include <vector>
+ Include dependency graph for extract.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  jsonv::extraction_error
 Exception thrown if there is any problem running extract. More...
 
class  jsonv::extraction_error::problem
 Description of a single problem with extraction. More...
 
class  jsonv::extract_options
 Configuration for various extraction options. This becomes part of the extraction_context. More...
 
class  jsonv::extractor
 An extractor holds the method for converting JSON source into an arbitrary C++ type. More...
 
class  jsonv::extraction_context
 Provides extra information to routines used for extraction, collects the problems they encounter, and tracks where in the document they are. More...
 
class  jsonv::extraction_context::path_scope
 An RAII guard naming one step of the extraction 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.
 
template<typename T >
jsonv::extract (const value &from, const formats &fmts)
 Extract a C++ value from from using the provided fmts.
 
template<typename T >
jsonv::extract (const value &from, const formats &fmts, const extract_options &options)
 Extract a C++ value from from using the provided fmts and options.
 
template<typename T >
jsonv::extract (const value &from)
 Extract a C++ value from from using jsonv::formats::global().
 
template<typename T >
jsonv::extract (const value &from, const extract_options &options)
 Extract a C++ value from from using jsonv::formats::global() and the provided options.
 

Detailed Description

Extraction 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 extract.hpp.