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
 | 
			
		||||
    */
 | 
			
		||||
    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
 | 
			
		||||
 | 
			
		||||
    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] 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
 | 
			
		||||
    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
 | 
			
		||||
    */
 | 
			
		||||
    template <class ValueType, typename
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -974,7 +974,9 @@ class basic_json
 | 
			
		|||
 | 
			
		||||
    @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
 | 
			
		||||
 | 
			
		||||
    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] 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
 | 
			
		||||
    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
 | 
			
		||||
    */
 | 
			
		||||
    template <class ValueType, typename
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue