JSON for Modern C++ 3.7.3

accept
accept
accept
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
basic_json
basic_json
begin
begin
binary
binary
binary
binary
binary_t
boolean_t
cbegin
cend
clear
const_iterator
const_pointer
const_reference
const_reverse_iterator
contains
contains
count
crbegin
crend
detail::external_constructor
diff
difference_type
dump
emplace
emplace_back
empty
end
end
erase
erase
erase
erase
error_handler_t
exception
find
find
flatten
from_bson
from_bson
from_bson
from_cbor
from_cbor
from_cbor
from_msgpack
from_msgpack
from_msgpack
from_ubjson
from_ubjson
from_ubjson
front
front
get
get
get
get
get
get
get_allocator
get_binary
get_binary
get_ptr
get_ptr
get_ref
get_ref
get_to
get_to
initializer_list_t
input_format_t
insert
insert
insert
insert
insert
insert
insert_iterator
invalid_iterator
is_array
is_binary
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
items
items
iterator
iterator_wrapper
iterator_wrapper
json_pointer
json_sax_t
json_serializer
max_size
merge_patch
meta
number_float_t
number_integer_t
number_unsigned_t
object
object_comparator_t
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[]
other_error
out_of_range
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
sax_parse
sax_parse
sax_parse
size
size_type
string_t
swap
swap
swap
swap
swap
swap
to_bson
to_bson
to_bson
to_cbor
to_cbor
to_cbor
to_msgpack
to_msgpack
to_msgpack
to_ubjson
to_ubjson
to_ubjson
type
type_error
type_name
unflatten
update
update
value
value
value
value
value_t
value_type
~basic_json
| ## ◆ operator ValueType() template<typename ValueType , typename std::enable_if< not std::is_pointer< ValueType >::value and not std::is_same< ValueType, detail::json_ref< basic_json >>::value and not std::is_same< ValueType, typename string_t::value_type >::value and not detail::is_basic_json< ValueType >::value and not std::is_same< ValueType, std::initializer_list< typename string_t::value_type >>::value and detail::is_detected< detail::get_template_function, const basic_json_t &, ValueType >::value, int >::type = 0>
nlohmann::basic_json::operator ValueType | ( |  | ) | const
| inline
  Implicit type conversion between the JSON value and a compatible value. The call is realized by calling get() const. Template Parameters
  ValueType | non-pointer type compatible to the JSON value, for instance `int` for JSON integer numbers, `bool` for JSON booleans, or `std::vector` types for JSON arrays. The character type of string_t as well as an initializer list of this type is excluded to avoid ambiguities as these types implicitly convert to `std::string`.
  Returns copy of the JSON value, converted to type ValueType Exceptions
  type_error.302 | in case passed type ValueType is incompatible to the JSON value type (e.g., the JSON value is of type boolean, but a string is requested); see example below
  Complexity Linear in the size of the JSON value. Example The example below shows several conversions from JSON values to other types. There a few things to note: (1) Floating-point numbers can be converted to integers, (2) A JSON array can be converted to a standard `std::vector<short>`, (3) A JSON object can be converted to C++ associative containers such as `std::unordered_map<std::string, json>`. 1 #include <iostream> 2 #include <unordered_map> 3 #include <nlohmann/json.hpp> 4 5 using json = nlohmann::json; 6 7 int main() 8 { 9 // create a JSON value with different types 10 json json_types = 11 { 12 {"boolean", true}, 13 { 14 "number", { 15 {"integer", 42}, 16 {"floating-point", 17.23} 17 } 18 }, 19 {"string", "Hello, world!"}, 20 {"array", {1, 2, 3, 4, 5}}, 21 {"null", nullptr} 22 }; 23 24 // use implicit conversions 25 bool v1 = json_types["boolean"]; 26 int v2 = json_types["number"]["integer"]; 27 short v3 = json_types["number"]["integer"]; 28 float v4 = json_types["number"]["floating-point"]; 29 int v5 = json_types["number"]["floating-point"]; 30 std::string v6 = json_types["string"]; 31 std::vector<short> v7 = json_types["array"]; 32 std::unordered_map<std::string, json> v8 = json_types; 33 34 // print the conversion results 35 std::cout << v1 << '\n'; 36 std::cout << v2 << ' ' << v3 << '\n'; 37 std::cout << v4 << ' ' << v5 << '\n'; 38 std::cout << v6 << '\n'; 39 40 for (auto i : v7) 41 { 42 std::cout << i << ' '; 43 } 44 std::cout << "\n\n"; 45 46 for (auto i : v8) 47 { 48 std::cout << i.first << ": " << i.second << '\n'; 49 } 50 51 // example for an exception 52 try 53 { 54 bool v1 = json_types["string"]; 55 } 56 catch (json::type_error& e) 57 { 58 std::cout << e.what() << '\n'; 59 } 60 } Output (play with this example online):
      1
      42 42
      17.23 17
      Hello, world!
      1 2 3 4 5

      string: "Hello, world!"
      number: {"floating-point":17.23,"integer":42}
      null: null
      boolean: true
      array: [1,2,3,4,5]
      [json.exception.type_error.302] type must be boolean, but is string
  The example code above can be translated with
      g++ -std=c++11 -Isingle_include doc/examples/operator__ValueType.cpp -o operator__ValueType
Since version 1.0.0 Definition at line 19007 of file json.hpp.

nlohmann::basic_json::type_error
detail::type_error type_error
exception indicating executing a member function with a wrong type
Definition: json.hpp:16045
nlohmann::json
basic_json<> json
default JSON class
Definition: json.hpp:2774