improved documentation
This commit is contained in:
parent
369671f028
commit
d08e013dd0
5 changed files with 93 additions and 2 deletions
29
doc/examples/basic_json__value_ptr.cpp
Normal file
29
doc/examples/basic_json__value_ptr.cpp
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
#include <json.hpp>
|
||||||
|
|
||||||
|
using json = nlohmann::json;
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// create a JSON object with different entry types
|
||||||
|
json j =
|
||||||
|
{
|
||||||
|
{"integer", 1},
|
||||||
|
{"floating", 42.23},
|
||||||
|
{"string", "hello world"},
|
||||||
|
{"boolean", true},
|
||||||
|
{"object", {{"key1", 1}, {"key2", 2}}},
|
||||||
|
{"array", {1, 2, 3}}
|
||||||
|
};
|
||||||
|
|
||||||
|
// access existing values
|
||||||
|
int v_integer = j.value("/integer"_json_pointer, 0);
|
||||||
|
double v_floating = j.value("/floating"_json_pointer, 47.11);
|
||||||
|
|
||||||
|
// access nonexisting values and rely on default value
|
||||||
|
std::string v_string = j.value("/nonexisting"_json_pointer, "oops");
|
||||||
|
bool v_boolean = j.value("/nonexisting"_json_pointer, false);
|
||||||
|
|
||||||
|
// output values
|
||||||
|
std::cout << std::boolalpha << v_integer << " " << v_floating
|
||||||
|
<< " " << v_string << " " << v_boolean << "\n";
|
||||||
|
}
|
1
doc/examples/basic_json__value_ptr.link
Normal file
1
doc/examples/basic_json__value_ptr.link
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a target="_blank" href="http://melpon.org/wandbox/permlink/K4L4D6nibuGXbjfd"><b>online</b></a>
|
1
doc/examples/basic_json__value_ptr.output
Normal file
1
doc/examples/basic_json__value_ptr.output
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1 42.23 oops false
|
32
src/json.hpp
32
src/json.hpp
|
@ -974,7 +974,9 @@ class basic_json
|
||||||
|
|
||||||
@since version 1.0.0
|
@since version 1.0.0
|
||||||
*/
|
*/
|
||||||
using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
|
using parser_callback_t = std::function<bool(int depth,
|
||||||
|
parse_event_t event,
|
||||||
|
basic_json& parsed)>;
|
||||||
|
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
|
@ -3716,6 +3718,21 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief access specified object element via JSON Pointer with default value
|
@brief access specified object element via JSON Pointer with default value
|
||||||
|
|
||||||
|
Returns either a copy of an object's element at the specified key @a key
|
||||||
|
or a given default value if no element with key @a key exists.
|
||||||
|
|
||||||
|
The function is basically equivalent to executing
|
||||||
|
@code {.cpp}
|
||||||
|
try {
|
||||||
|
return at(ptr);
|
||||||
|
} catch(std::out_of_range) {
|
||||||
|
return default_value;
|
||||||
|
}
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
@note Unlike @ref at(const json_pointer&), this function does not throw
|
||||||
|
if the given key @a key was not found.
|
||||||
|
|
||||||
@param[in] ptr a JSON pointer to the element to access
|
@param[in] ptr a JSON pointer to the element to access
|
||||||
@param[in] default_value the value to return if @a ptr found no value
|
@param[in] default_value the value to return if @a ptr found no value
|
||||||
|
|
||||||
|
@ -3724,6 +3741,19 @@ class basic_json
|
||||||
JSON arrays. Note the type of the expected value at @a key and the default
|
JSON arrays. Note the type of the expected value at @a key and the default
|
||||||
value @a default_value must be compatible.
|
value @a default_value must be compatible.
|
||||||
|
|
||||||
|
@return copy of the element at key @a key or @a default_value if @a key
|
||||||
|
is not found
|
||||||
|
|
||||||
|
@throw std::domain_error if JSON is not an object; example: `"cannot use
|
||||||
|
value() with null"`
|
||||||
|
|
||||||
|
@complexity Logarithmic in the size of the container.
|
||||||
|
|
||||||
|
@liveexample{The example below shows how object elements can be queried
|
||||||
|
with a default value.,basic_json__value_ptr}
|
||||||
|
|
||||||
|
@sa @ref operator[](const json_ptr&) for unchecked access by reference
|
||||||
|
|
||||||
@since version 2.0.2
|
@since version 2.0.2
|
||||||
*/
|
*/
|
||||||
template <class ValueType, typename
|
template <class ValueType, typename
|
||||||
|
|
|
@ -974,7 +974,9 @@ class basic_json
|
||||||
|
|
||||||
@since version 1.0.0
|
@since version 1.0.0
|
||||||
*/
|
*/
|
||||||
using parser_callback_t = std::function<bool(int depth, parse_event_t event, basic_json& parsed)>;
|
using parser_callback_t = std::function<bool(int depth,
|
||||||
|
parse_event_t event,
|
||||||
|
basic_json& parsed)>;
|
||||||
|
|
||||||
|
|
||||||
//////////////////
|
//////////////////
|
||||||
|
@ -3716,6 +3718,21 @@ class basic_json
|
||||||
/*!
|
/*!
|
||||||
@brief access specified object element via JSON Pointer with default value
|
@brief access specified object element via JSON Pointer with default value
|
||||||
|
|
||||||
|
Returns either a copy of an object's element at the specified key @a key
|
||||||
|
or a given default value if no element with key @a key exists.
|
||||||
|
|
||||||
|
The function is basically equivalent to executing
|
||||||
|
@code {.cpp}
|
||||||
|
try {
|
||||||
|
return at(ptr);
|
||||||
|
} catch(std::out_of_range) {
|
||||||
|
return default_value;
|
||||||
|
}
|
||||||
|
@endcode
|
||||||
|
|
||||||
|
@note Unlike @ref at(const json_pointer&), this function does not throw
|
||||||
|
if the given key @a key was not found.
|
||||||
|
|
||||||
@param[in] ptr a JSON pointer to the element to access
|
@param[in] ptr a JSON pointer to the element to access
|
||||||
@param[in] default_value the value to return if @a ptr found no value
|
@param[in] default_value the value to return if @a ptr found no value
|
||||||
|
|
||||||
|
@ -3724,6 +3741,19 @@ class basic_json
|
||||||
JSON arrays. Note the type of the expected value at @a key and the default
|
JSON arrays. Note the type of the expected value at @a key and the default
|
||||||
value @a default_value must be compatible.
|
value @a default_value must be compatible.
|
||||||
|
|
||||||
|
@return copy of the element at key @a key or @a default_value if @a key
|
||||||
|
is not found
|
||||||
|
|
||||||
|
@throw std::domain_error if JSON is not an object; example: `"cannot use
|
||||||
|
value() with null"`
|
||||||
|
|
||||||
|
@complexity Logarithmic in the size of the container.
|
||||||
|
|
||||||
|
@liveexample{The example below shows how object elements can be queried
|
||||||
|
with a default value.,basic_json__value_ptr}
|
||||||
|
|
||||||
|
@sa @ref operator[](const json_ptr&) for unchecked access by reference
|
||||||
|
|
||||||
@since version 2.0.2
|
@since version 2.0.2
|
||||||
*/
|
*/
|
||||||
template <class ValueType, typename
|
template <class ValueType, typename
|
||||||
|
|
Loading…
Reference in a new issue