jmespath.cpp
C++ implementation of JMESPath, a query language for JSON http://jmespath.org
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Namespaces | Classes | Typedefs | Functions
jmespath Namespace Reference

The top level namespace which contains the public functions of the library. More...

Namespaces

 ast
 Classes which represent the AST nodes.
 
 interpreter
 Classes for interpreting the AST of the JMESPath expression.
 
 literals
 User defined literals.
 
 parser
 Classes required for parsing JMESPath expressions.
 

Classes

struct  Exception
 The Exception struct is the common base class for for all the exceptions thrown by the library. More...
 
struct  SyntaxError
 The SyntaxError struct represents a syntax error in the evaluated expression. More...
 
struct  InvalidAgrument
 The InvalidAgrument struct signals a function call with illegal arguments. More...
 
struct  InvalidValue
 The InvalidValue struct represents an invalid value in the JMESPath expression. More...
 
struct  UnknownFunction
 The UnknownFunction struct represents a call to a JMESPath built in function which doesn't exists. More...
 
struct  InvalidFunctionArgumentArity
 The InvalidFunctionArgumentArity struct signals the a JMESPath built in function was called with an unexpected number of arguments. More...
 
struct  InvalidFunctionArgumentType
 The InvalidFunctionArgumentType struct represents a call to a JMESPath built in function with an unexpected type of argument. More...
 
class  Expression
 The Expression class represents a JMESPath expression. More...
 

Typedefs

using InfoSearchExpression = boost::error_info< struct tag_search_expression, std::string >
 InfoSearchExpression contains the JMESPath expression being evaluated. More...
 
using InfoSyntaxErrorLocation = boost::error_info< struct tag_syntax_error_location, long >
 InfoSyntaxErrorLocation contains the location of the syntax error in the JMESPath expression. More...
 
using InfoFunctionName = boost::error_info< struct tag_function_name, std::string >
 InfoFunctionName contains the name of the built in JMESpath function. More...
 
using Char = char
 8 bit character type More...
 
using String = std::basic_string< Char >
 UTF-8 encoded string type. More...
 
using UnicodeChar = char32_t
 32 bit character type More...
 
using UnicodeString = std::basic_string< UnicodeChar >
 UTF-32 encoded string type. More...
 
using UnicodeIteratorAdaptor = boost::u8_to_u32_iterator< String::const_iterator >
 UTF-32 string iterator adaptor. More...
 
using StringIteratorAdaptor = boost::u32_to_u8_iterator< UnicodeString::const_iterator >
 UTF-8 string iterator adaptor. More...
 
using Json = nlohmann::json
 JSON data type. More...
 
using Index = boost::multiprecision::number< boost::multiprecision::cpp_int_backend< std::numeric_limits< size_t >::digits, std::numeric_limits< size_t >::digits, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void > >
 Signed integer type that can hold all values in the range of numeric_limits<size_t>::max() * -1 ... numeric_limits<size_t>::max() More...
 

Functions

template<typename JsonT >
std::enable_if_t< std::is_same
< std::decay_t< JsonT >, Json >
::value, Json
search (const Expression &expression, JsonT &&document)
 Finds or creates the results for the expression evaluated on the given document. More...
 
template Json search< const Json & > (const Expression &, const Json &)
 Explicit instantiation declaration for Search function to prevent implicit instantiation in client code. More...
 
template Json search< Json & > (const Expression &, Json &)
 Explicit instantiation declaration for Search function to prevent implicit instantiation in client code. More...
 
template Json search< Json > (const Expression &, Json &&)
 Explicit instantiation declaration for Search function to prevent implicit instantiation in client code. More...
 

Detailed Description

The top level namespace which contains the public functions of the library.

Typedef Documentation

using jmespath::Char = typedef char

8 bit character type

using jmespath::Index = typedef boost::multiprecision::number< boost::multiprecision::cpp_int_backend< std::numeric_limits<size_t>::digits, std::numeric_limits<size_t>::digits, boost::multiprecision::signed_magnitude, boost::multiprecision::checked, void> >

Signed integer type that can hold all values in the range of numeric_limits<size_t>::max() * -1 ... numeric_limits<size_t>::max()

using jmespath::Json = typedef nlohmann::json

JSON data type.

using jmespath::String = typedef std::basic_string<Char>

UTF-8 encoded string type.

using jmespath::StringIteratorAdaptor = typedef boost::u32_to_u8_iterator<UnicodeString::const_iterator>

UTF-8 string iterator adaptor.

using jmespath::UnicodeChar = typedef char32_t

32 bit character type

using jmespath::UnicodeIteratorAdaptor = typedef boost::u8_to_u32_iterator<String::const_iterator>

UTF-32 string iterator adaptor.

using jmespath::UnicodeString = typedef std::basic_string<UnicodeChar>

UTF-32 encoded string type.

Function Documentation

template Json jmespath::search< const Json & > ( const Expression &  ,
const Json &   
)

Explicit instantiation declaration for Search function to prevent implicit instantiation in client code.

template Json jmespath::search< Json & > ( const Expression &  ,
Json &   
)

Explicit instantiation declaration for Search function to prevent implicit instantiation in client code.

template Json jmespath::search< Json > ( const Expression &  ,
Json &&   
)

Explicit instantiation declaration for Search function to prevent implicit instantiation in client code.