Implement contains() to check existence of a key
This commit is contained in:
		
							parent
							
								
									68ec3eb8d6
								
							
						
					
					
						commit
						6a5db00951
					
				
					 2 changed files with 66 additions and 0 deletions
				
			
		|  | @ -3957,6 +3957,39 @@ class basic_json | |||
|         return is_object() ? m_value.object->count(std::forward<KeyT>(key)) : 0; | ||||
|     } | ||||
| 
 | ||||
|     /*!
 | ||||
|     @brief check the existence of an element in a JSON object | ||||
| 
 | ||||
|     Check whether an element exists in a JSON object with key equivalent to | ||||
|     @a key. If the element is not found or the JSON value is not an object, | ||||
|     false is returned. | ||||
| 
 | ||||
|     @note This method always returns false when executed on a JSON type | ||||
|           that is not an object. | ||||
| 
 | ||||
|     @param[in] key key value to check its existence. | ||||
| 
 | ||||
|     @return true if an element with specified @a key exists. If no such | ||||
|     element with such key is found or the JSON value is not an object, | ||||
|     false is returned. | ||||
| 
 | ||||
|     @complexity Logarithmic in the size of the JSON object. | ||||
| 
 | ||||
|     @since version 3.6.0 | ||||
|     */ | ||||
|     template<typename KeyT> | ||||
|     bool contains(KeyT&& key) const | ||||
|     { | ||||
|         if (is_object()) | ||||
|         { | ||||
|             return (m_value.object->find(std::forward<KeyT>(key)) != m_value.object->end()); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /// @}
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -16456,6 +16456,39 @@ class basic_json | |||
|         return is_object() ? m_value.object->count(std::forward<KeyT>(key)) : 0; | ||||
|     } | ||||
| 
 | ||||
|     /*!
 | ||||
|     @brief check the existence of an element in a JSON object | ||||
| 
 | ||||
|     Check whether an element exists in a JSON object with key equivalent to | ||||
|     @a key. If the element is not found or the JSON value is not an object, | ||||
|     false is returned. | ||||
| 
 | ||||
|     @note This method always returns false when executed on a JSON type | ||||
|           that is not an object. | ||||
| 
 | ||||
|     @param[in] key key value to check its existence. | ||||
| 
 | ||||
|     @return true if an element with specified @a key exists. If no such | ||||
|     element with such key is found or the JSON value is not an object, | ||||
|     false is returned. | ||||
| 
 | ||||
|     @complexity Logarithmic in the size of the JSON object. | ||||
| 
 | ||||
|     @since version 3.6.0 | ||||
|     */ | ||||
|     template<typename KeyT> | ||||
|     bool contains(KeyT&& key) const | ||||
|     { | ||||
|         if (is_object()) | ||||
|         { | ||||
|             return (m_value.object->find(std::forward<KeyT>(key)) != m_value.object->end()); | ||||
|         } | ||||
|         else | ||||
|         { | ||||
|             return false; | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     /// @}
 | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue