added examples

This commit is contained in:
Niels 2016-04-17 23:18:07 +02:00
parent 1dee40a969
commit 08c97df420
8 changed files with 144 additions and 20 deletions

View file

@ -0,0 +1,35 @@
#include <json.hpp>
using json = nlohmann::json;
int main()
{
// create a JSON value
json j =
{
{"number", 1}, {"string", "foo"}, {"array", {1, 2}}
};
// read-only access
// output element with JSON pointer "/number"
std::cout << j.at("/number"_json_pointer) << '\n';
// output element with JSON pointer "/string"
std::cout << j.at("/string"_json_pointer) << '\n';
// output element with JSON pointer "/array"
std::cout << j.at("/array"_json_pointer) << '\n';
// output element with JSON pointer "/array/1"
std::cout << j.at("/array/1"_json_pointer) << '\n';
// writing access
// change the string
j.at("/string"_json_pointer) = "bar";
// output the changed string
std::cout << j["string"] << '\n';
// change an array element
j.at("/array/1"_json_pointer) = 21;
// output the changed array
std::cout << j["array"] << '\n';
}

View file

@ -0,0 +1 @@
<a target="_blank" href="http://melpon.org/wandbox/permlink/dGjf71qpuaptNhpP"><b>online</b></a>

View file

@ -0,0 +1,6 @@
1
"foo"
[1,2]
2
"bar"
[1,21]

View file

@ -0,0 +1,23 @@
#include <json.hpp>
using json = nlohmann::json;
int main()
{
// create a JSON value
json j =
{
{"number", 1}, {"string", "foo"}, {"array", {1, 2}}
};
// read-only access
// output element with JSON pointer "/number"
std::cout << j.at("/number"_json_pointer) << '\n';
// output element with JSON pointer "/string"
std::cout << j.at("/string"_json_pointer) << '\n';
// output element with JSON pointer "/array"
std::cout << j.at("/array"_json_pointer) << '\n';
// output element with JSON pointer "/array/1"
std::cout << j.at("/array/1"_json_pointer) << '\n';
}

View file

@ -0,0 +1 @@
<a target="_blank" href="http://melpon.org/wandbox/permlink/O1Jx8KXGu0EqkwFg"><b>online</b></a>

View file

@ -0,0 +1,4 @@
1
"foo"
[1,2]
2

View file

@ -3616,9 +3616,9 @@ class basic_json
@param[in] ptr a JSON pointer
@return reference to the JSON value pointed to by @a ptr
@return reference to the element pointed to by @a ptr
@complexity Linear in the length of the JSON pointer.
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@ -3641,18 +3641,17 @@ class basic_json
value; no `null` values are created. In particular, the the special value
`-` yields an exception.
@param[in] ptr a JSON pointer
@param[in] ptr JSON pointer to the desired element
@return reference to the JSON value pointed to by @a ptr
@return const reference to the element pointed to by @a ptr
@complexity Linear in the length of the JSON pointer.
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,
operatorjson_pointer_const}
@liveexample{The behavior is shown in the example.,operatorjson_pointer_const}
@since version 2.0.0
*/
@ -3664,9 +3663,20 @@ class basic_json
/*!
@brief access specified element via JSON Pointer
Returns a reference to the element at with specified JSON pointer @a ptr.
Returns a reference to the element at with specified JSON pointer @a ptr,
with bounds checking.
@param ptr JSON pointer to the desired element
@param[in] ptr JSON pointer to the desired element
@return reference to the element pointed to by @a ptr
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,at_json_pointer}
@since version 2.0.0
*/
@ -3676,7 +3686,24 @@ class basic_json
}
/*!
@copydoc basic_json::at(const json_pointer&)
@brief access specified element via JSON Pointer
Returns a const reference to the element at with specified JSON pointer
@a ptr, with bounds checking.
@param[in] ptr JSON pointer to the desired element
@return reference to the element pointed to by @a ptr
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,at_json_pointer_const}
@since version 2.0.0
*/
const_reference at(const json_pointer& ptr) const
{

View file

@ -3616,9 +3616,9 @@ class basic_json
@param[in] ptr a JSON pointer
@return reference to the JSON value pointed to by @a ptr
@return reference to the element pointed to by @a ptr
@complexity Linear in the length of the JSON pointer.
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@ -3641,18 +3641,17 @@ class basic_json
value; no `null` values are created. In particular, the the special value
`-` yields an exception.
@param[in] ptr a JSON pointer
@param[in] ptr JSON pointer to the desired element
@return reference to the JSON value pointed to by @a ptr
@return const reference to the element pointed to by @a ptr
@complexity Linear in the length of the JSON pointer.
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,
operatorjson_pointer_const}
@liveexample{The behavior is shown in the example.,operatorjson_pointer_const}
@since version 2.0.0
*/
@ -3664,9 +3663,20 @@ class basic_json
/*!
@brief access specified element via JSON Pointer
Returns a reference to the element at with specified JSON pointer @a ptr.
Returns a reference to the element at with specified JSON pointer @a ptr,
with bounds checking.
@param ptr JSON pointer to the desired element
@param[in] ptr JSON pointer to the desired element
@return reference to the element pointed to by @a ptr
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,at_json_pointer}
@since version 2.0.0
*/
@ -3676,7 +3686,24 @@ class basic_json
}
/*!
@copydoc basic_json::at(const json_pointer&)
@brief access specified element via JSON Pointer
Returns a const reference to the element at with specified JSON pointer
@a ptr, with bounds checking.
@param[in] ptr JSON pointer to the desired element
@return reference to the element pointed to by @a ptr
@complexity Constant.
@throw std::out_of_range if the JSON pointer can not be resolved
@throw std::domain_error if an array index begins with '0'
@throw std::invalid_argument if an array index was not a number
@liveexample{The behavior is shown in the example.,at_json_pointer_const}
@since version 2.0.0
*/
const_reference at(const json_pointer& ptr) const
{