JSON for Modern C++ 2.1.1

allocator_type
array
array_t
at
at
at
at
at
at
back
back
basic_json
basic_json
basic_json
basic_json
basic_json
basic_json
basic_json
basic_json
begin
begin
boolean_t
cbegin
cend
clear
const_iterator
const_pointer
const_reference
const_reverse_iterator
count
crbegin
crend
detail::external_constructor
diff
difference_type
dump
emplace
emplace_back
empty
end
end
erase
erase
erase
erase
exception
find
find
flatten
from_cbor
from_msgpack
front
front
get
get
get
get
get
get_allocator
get_ptr
get_ptr
get_ref
get_ref
insert
insert
insert
insert
insert
insert
invalid_iterator
is_array
is_boolean
is_discarded
is_null
is_number
is_number_float
is_number_integer
is_number_unsigned
is_object
is_primitive
is_string
is_structured
iterator
iterator_wrapper
iterator_wrapper
json_serializer
max_size
meta
number_float_t
number_integer_t
number_unsigned_t
object
object_t
operator value_t
operator ValueType
operator!=
operator!=
operator!=
operator+=
operator+=
operator+=
operator+=
operator<
operator<
operator<
operator<<
operator<<
operator<=
operator<=
operator<=
operator=
operator==
operator==
operator==
operator>
operator>
operator>
operator>=
operator>=
operator>=
operator>>
operator>>
operator[]
operator[]
operator[]
operator[]
operator[]
operator[]
operator[]
operator[]
operator[]
operator[]
other_error
out_of_range
parse
parse
parse
parse
parse
parse
parse_error
parse_event_t
parser_callback_t
patch
pointer
push_back
push_back
push_back
push_back
rbegin
rbegin
reference
rend
rend
reverse_iterator
size
size_type
string_t
swap
swap
swap
swap
to_cbor
to_msgpack
type
type_error
type_name
unflatten
value
value
value
value
value_t
value_type
~basic_json
| ## ◆ value() [4/4] 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>
string_t nlohmann::basic_json::value | ( | const json_pointer & | ptr,
|  | const char * | default_value
| ) |  | const
| inline
  access specified object element via JSON Pointer with default value Returns either a copy of an object's element at the specified key key or a given default value if no element with key key exists. The function is basically equivalent to executing try { return at(ptr); } catch(out_of_range) { return default_value; } Note Unlike at(const json_pointer&), this function does not throw if the given key key was not found. Parameters
  [in] | ptr | a JSON pointer to the element to access
  [in] | default_value | the value to return if ptr found no value
  Template Parameters
  ValueType | type compatible to JSON values, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for JSON arrays. Note the type of the expected value at key and the default value default_value must be compatible.
  Returns copy of the element at key key or default_value if key is not found Exceptions
  type_error.306 | if the JSON value is not an objec; in that cases, using `value()` with a key makes no sense.
  Complexity Logarithmic in the size of the container. Example The example below shows how object elements can be queried with a default value. 1 #include "json.hpp" 2 3 using json = nlohmann::json; 4 5 int main() 6 { 7 // create a JSON object with different entry types 8 json j = 9 { 10 {"integer", 1}, 11 {"floating", 42.23}, 12 {"string", "hello world"}, 13 {"boolean", true}, 14 {"object", {{"key1", 1}, {"key2", 2}}}, 15 {"array", {1, 2, 3}} 16 }; 17 18 // access existing values 19 int v_integer = j.value("/integer"_json_pointer, 0); 20 double v_floating = j.value("/floating"_json_pointer, 47.11); 21 22 // access nonexisting values and rely on default value 23 std::string v_string = j.value("/nonexisting"_json_pointer, "oops"); 24 bool v_boolean = j.value("/nonexisting"_json_pointer, false); 25 26 // output values 27 std::cout << std::boolalpha << v_integer << " " << v_floating 28 << " " << v_string << " " << v_boolean << "\n"; 29 } nlohmann::json basic_json<> json default JSON class Definition: json.hpp:13933 Output (play with this example online):
      1 42.23 oops false
  The example code above can be translated with
      g++ -std=c++11 -Isrc doc/examples/basic_json__value_ptr.cpp -o basic_json__value_ptr
See also operator[](const json_pointer&) for unchecked access by reference Since version 2.0.2 Definition at line 4431 of file json.hpp.