|
◆ contains() [1/2]
template<template< typename U, typename V, typename... Args > class ObjectType = std::map, template< typename U, typename... Args > class ArrayType = std::vector, class StringType = std::string, class BooleanType = bool, class NumberIntegerType = std::int64_t, class NumberUnsignedType = std::uint64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator, template< typename T, typename SFINAE=void > class JSONSerializer = adl_serializer, class BinaryType = std::vector<std::uint8_t>>
bool nlohmann::basic_json< ObjectType, ArrayType, StringType, BooleanType, NumberIntegerType, NumberUnsignedType, NumberFloatType, AllocatorType, JSONSerializer, BinaryType >::contains |
( |
const json_pointer & |
ptr | ) |
const |
|
inline |
Check whether the given JSON pointer ptr can be resolved in the current JSON value.
- Note
- This method can be executed on any JSON value type.
- Parameters
-
[in] | ptr | JSON pointer to check its existence. |
- Returns
- true if the JSON pointer can be resolved to a stored value, false otherwise.
- Postcondition
- If
j.contains(ptr) returns true, it is safe to call j[ptr] .
- Exceptions
-
parse_error.106 | if an array index begins with '0' |
parse_error.109 | if an array index was not a number |
- Complexity
- Logarithmic in the size of the JSON object.
- Example
- The following code shows an example for
contains() .
2 #include <nlohmann/json.hpp>
11 { "number", 1}, { "string", "foo"}, { "array", {1, 2}}
14 std::cout << std::boolalpha
15 << j.contains( "/number"_json_pointer) << '\n'
16 << j.contains( "/string"_json_pointer) << '\n'
17 << j.contains( "/array"_json_pointer) << '\n'
18 << j.contains( "/array/1"_json_pointer) << '\n'
19 << j.contains( "/array/-"_json_pointer) << '\n'
20 << j.contains( "/array/4"_json_pointer) << '\n'
21 << j.contains( "/baz"_json_pointer) << std::endl;
26 j.contains( "/array/01"_json_pointer);
30 std::cout << e.what() << '\n';
36 j.contains( "/array/one"_json_pointer);
40 std::cout << e.what() << '\n';
detail::parse_error parse_error exception indicating a parse error
basic_json<> json default JSON class
Output (play with this example online): true
true
true
true
false
false
false
The example code above can be translated withg++ -std=c++11 -Isingle_include doc/examples/contains_json_pointer.cpp -o contains_json_pointer
- See also
- contains(KeyT &&) const – checks the existence of a key
- Since
- version 3.7.0
Definition at line 20937 of file json.hpp.
|