# basic_json !!! note This page is under construction. Defined in header `` ```cpp template class ObjectType, template class ArrayType, class StringType, class BooleanType, class NumberIntegerType, class NumberUnsignedType, class NumberFloatType, template class AllocatorType, template class JSONSerializer, class BinaryType> class basic_json ``` ## Specializations - json - ordered_json ## Template parameters - ObjectType - ArrayType - StringType - BooleanType - NumberIntegerType - NumberUnsignedType - NumberFloatType - AllocatorType - JSONSerializer - BinaryType ## Iterator invalidation ## Member types - value_t - json_pointer - json_serializer - error_handler_t - cbor_tag_handler_t - initializer_list_t - input_format_t - json_sax_t ### Exceptions - exception - parse_error - invalid_iterator - type_error - out_of_range - other_error ### Container types - value_type - reference - const_reference - difference_type - size_type - allocator_type - pointer - const_pointer - iterator - const_iterator - reverse_iterator - const_reverse_iterator ### JSON value data types - object_comparator_t - object_t - array_t - string_t - boolean_t - number_integer_t - number_unsigned_t - number_float_t - binary_t ### Parser callback - parse_event_t - parser_callback_t ## Member functions - (constructor) - (destructor) - binary (static) - explicitly create a binary array - array (static) - explicitly create an array - object (static) - explicitly create an object - operator= - copy assignment ### Object inspection Functions to inspect the type of a JSON value. - type - return the type of the JSON value - is_primitive - return whether type is primitive - is_structured - return whether type is structured - is_null - return whether value is null - is_boolean - return whether value is a boolean - is_number - return whether value is a number - is_number_integer - return whether value is an integer number - is_number_unsigned - return whether value is an unsigned integer number - is_number_float - return whether value is a floating-point number - is_object - return whether value is an object - is_array - return whether value is an array - is_string - return whether value is a string - is_binary - return whether value is a binary array - is_discarded - return whether value is discarded - operator value_t - return the type of the JSON value ### Value access Direct access to the stored value of a JSON value. - get - get a value - get_to - get a value - get_ptr - get a pointer value - get_ref - get a reference value - operator ValueType - get a value - get_binary - get a binary value ### Element access Access to the JSON value - at - access specified array element with bounds checking - at - access specified object element with bounds checking - operator[] - access specified array element - operator[] - access specified object element - value - access specified object element with default value - front - access the first element - back - access the last element - erase - remove elements ### Lookup - find - find an element in a JSON object - count - returns the number of occurrences of a key in a JSON object - contains - check the existence of an element in a JSON object ### Iterators - begin - returns an iterator to the first element - cbegin - returns a const iterator to the first element - end - returns an iterator to one past the last element - cend - returns a const iterator to one past the last element - rbegin - returns an iterator to the reverse-beginning - rend - returns an iterator to the reverse-end - crbegin - returns a const iterator to the reverse-beginning - crend - returns a const iterator to the reverse-end - items - wrapper to access iterator member functions in range-based for ### Capacity - empty - checks whether the container is empty - size - returns the number of elements - max_size - returns the maximum possible number of elements ### Modifiers - clear - clears the contents - push_back - add an object to an array - operator+= - add an object to an array - push_back - add an object to an object - operator+= - add an object to an object - emplace_back - add an object to an array - emplace - add an object to an object if key does not exist - insert - inserts element - update - updates a JSON object from another object, overwriting existing keys - swap - exchanges the values ### Lexicographical comparison operators - operator== - comparison: equal - operator!= - comparison: not equal - operator< - comparison: less than - operator<= - comparison: less than or equal - operator> - comparison: greater than - operator>= - comparison: greater than or equal ### Serialization - [**dump**](dump.md) - serialization - to_string - user-defined to_string function for JSON values ### Deserialization - [**parse**](parse.md) - deserialize from a compatible input - accept - check if the input is valid JSON - sax_parse - generate SAX events ### Convenience functions - type_name - return the type as string ### JSON Pointer functions - at - access specified object element with bounds checking via JSON Pointer - operator[] - access specified element via JSON Pointer - value - access specified object element with default value via JSON Pointer - flatten - return flattened JSON value - unflatten - unflatten a previously flattened JSON value ### JSON Patch functions - patch - applies a JSON patch - diff (static) - creates a diff as a JSON patch ### JSON Merge Patch functions - merge_patch - applies a JSON Merge Patch ## Static functions - [**meta**](meta.md) - returns version information on the library - get_allocator - returns the allocator associated with the container ### Binary formats - to_cbor - create a CBOR serialization of a given JSON value - to_msgpack - create a MessagePack serialization of a given JSON value - to_ubjson - create a UBJSON serialization of a given JSON value - to_bson - create a BSON serialization of a given JSON value - from_cbor - create a JSON value from an input in CBOR format - from_msgpack - create a JSON value from an input in MessagePack format - from_ubjson - create a JSON value from an input in UBJSON format - from_bson - create a JSON value from an input in BSON format ## Non-member functions - operator<<(std::ostream&) - serialize to stream - operator>>(std::istream&) - deserialize from stream ## Literals - operator""_json - operator""_json_pointer ## Helper classes - std::hash - std::less - std::swap