JSON for Modern C++  3.0
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 = int64_t, class NumberFloatType = double, template< typename U > class AllocatorType = std::allocator>
template<typename PointerType , typename std::enable_if< std::is_pointer< PointerType >::value, int >::type = 0>
PointerType nlohmann::basic_json::get ( )
inlinenoexcept

Explicit pointer access to the internally stored JSON value. No copies are made.

Warning
Writing data to the pointee of the result yields an undefined state.
Template Parameters
PointerTypepointer type; must be a pointer to array_t, object_t, string_t, boolean_t, number_integer_t, or number_float_t.
Returns
pointer to the internally stored JSON value if the requested pointer type PointerType fits to the JSON value; nullptr otherwise
Complexity
Constant.
Example
The example below shows how pointers to internal values of a JSON value can be requested. Note that no type conversions are made and a nullptr is returned if the value and the requested pointer type does not match.
1 #include <json.hpp>
2 
3 using namespace nlohmann;
4 
5 int main()
6 {
7  // create a JSON boolean
8  json value = 17;
9 
10  // explicitly getting pointers
11  auto p1 = value.get<const json::number_integer_t*>();
12  auto p2 = value.get<json::number_integer_t*>();
13  auto p3 = value.get<json::number_integer_t* const>();
14  auto p4 = value.get<const json::number_integer_t* const>();
15  auto p5 = value.get<json::number_float_t*>();
16 
17  // print the pointees
18  std::cout << *p1 << ' ' << *p2 << ' ' << *p3 << ' ' << *p4 << '\n';
19  std::cout << std::boolalpha << (p5 == nullptr) << '\n';
20 }
a class to store JSON values
Definition: json.hpp:130
namespace for Niels Lohmann
Definition: json.hpp:55
ValueType get() const
get a value (explicit)
Definition: json.hpp:2247
NumberIntegerType number_integer_t
a type for a number (integer)
Definition: json.hpp:435
NumberFloatType number_float_t
a type for a number (floating-point)
Definition: json.hpp:495
Output (play with this example online):
17 17 17 17
true
The example code above can be translated with
g++ -std=c++11 -Isrc doc/examples/get__PointerType.cpp -o get__PointerType 
See also
get_ptr() for explicit pointer-member access