[#BloombergLP-bdljsn-JsonObject]
= xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/bdljsn.adoc[bdljsn]::JsonObject
:relfileprefix: ../../
:mrdocs:

JSON object value providing an associative&hyphen;container&hyphen;like interface&period;

== Synopsis

Declared in `&lt;bdljsn&lowbar;json&period;h&gt;`

[source,cpp,subs="verbatim,replacements,macros,-callouts"]
----
class JsonObject;
----

== Description

This type is designed to replicate much of the standard associative container interface, eliding interfaces that are less relevant for a non&hyphen;generic container, like hasher and comparator access, emplacement, nodes, capacity management, etc&period;

== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdljsn/JsonObject/ConstIterator.adoc[`ConstIterator`] 
| Iterator providing non&hyphen;modifiable access to members&period;
| xref:BloombergLP/bdljsn/JsonObject/Iterator-05.adoc[`Iterator`] 
| Iterator providing modifiable access to members&period;
| xref:BloombergLP/bdljsn/JsonObject/IteratorAndStatus.adoc[`IteratorAndStatus`] 
| Pair of an iterator and a status flag returned by some insert methods&period;
| xref:BloombergLP/bdljsn/JsonObject/Member.adoc[`Member`] 
| Key&sol;value pair type for members of this object&period;
| xref:BloombergLP/bdljsn/JsonObject/const_iterator.adoc[`const&lowbar;iterator`] 
| Iterator providing non&hyphen;modifiable access to members&period;
| xref:BloombergLP/bdljsn/JsonObject/const_reference.adoc[`const&lowbar;reference`] 
| Reference providing non&hyphen;modifiable access to a member&period;
| xref:BloombergLP/bdljsn/JsonObject/difference_type.adoc[`difference&lowbar;type`] 
| Signed type used to represent distances between iterators&period;
| xref:BloombergLP/bdljsn/JsonObject/iterator-08.adoc[`iterator`] 
| Iterator providing modifiable access to members&period;
| xref:BloombergLP/bdljsn/JsonObject/reference.adoc[`reference`] 
| Reference providing modifiable access to a member&period;
| xref:BloombergLP/bdljsn/JsonObject/size_type.adoc[`size&lowbar;type`] 
| Unsigned type used to represent sizes and indices&period;
| xref:BloombergLP/bdljsn/JsonObject/value_type.adoc[`value&lowbar;type`] 
| Type of the members stored in this object&period;
|===


== Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdljsn/JsonObject/2constructor-01.adoc[`JsonObject`]         [.small]#[constructor]#
| Constructors
| xref:BloombergLP/bdljsn/JsonObject/operator_assign-0d3.adoc[`operator&equals;`] 
| Assignment operators
| xref:BloombergLP/bdljsn/JsonObject/allocator.adoc[`allocator`] 
| Return the allocator used by this object to allocate memory&period;
| xref:BloombergLP/bdljsn/JsonObject/begin-01.adoc[`begin`] 
| `begin` overloads
| xref:BloombergLP/bdljsn/JsonObject/cbegin.adoc[`cbegin`] 
| Return a const iterator to the first member of this object&period;
| xref:BloombergLP/bdljsn/JsonObject/cend.adoc[`cend`] 
| Return an iterator providing non&hyphen;modifiable access to the past&hyphen;the&hyphen;end position in the sequence of `Member` objects maintained by this `JsonObject`&period;
| xref:BloombergLP/bdljsn/JsonObject/clear.adoc[`clear`] 
| Remove all entries from this `JsonObject`&period; Note that this `JsonObject` will be empty after calling this method, but allocated memory may be retained for future use&period;
| xref:BloombergLP/bdljsn/JsonObject/contains.adoc[`contains`] 
| Return `true` if there is a `Member` object in this `JsonObject` with a key equivalent to the specified `key`, and return `false` otherwise&period;
| xref:BloombergLP/bdljsn/JsonObject/empty.adoc[`empty`] 
| Return `true` if this `JsonObject` contains no elements, and `false` otherwise&period;
| xref:BloombergLP/bdljsn/JsonObject/end-00.adoc[`end`] 
| `end` overloads
| xref:BloombergLP/bdljsn/JsonObject/erase-03.adoc[`erase`] 
| `erase` overloads
| xref:BloombergLP/bdljsn/JsonObject/find-0f.adoc[`find`] 
| `find` overloads
| xref:BloombergLP/bdljsn/JsonObject/insert-032.adoc[`insert`] 
| `insert` overloads
| xref:BloombergLP/bdljsn/JsonObject/operator_subs-00.adoc[`operator&lsqb;&rsqb;`] 
| Subscript operators
| xref:BloombergLP/bdljsn/JsonObject/print.adoc[`print`] 
| Write this value to the specified output stream in a human&hyphen;readable format&period;
| xref:BloombergLP/bdljsn/JsonObject/size.adoc[`size`] 
| Return the number of elements in this `JsonObject`&period;
| xref:BloombergLP/bdljsn/JsonObject/swap.adoc[`swap`] 
| Exchange the value of this object with that of `other`&period;
| xref:BloombergLP/bdljsn/JsonObject/2conversion.adoc[`operator BloombergLP::bslmf::NestedTraitDeclaration&lt;JsonObject, HasPrintMethod&gt;`] 
| Declare that this type uses a `bslma` allocator&period;
|===


== Friends

[cols="1,4"]
|===
| Name| Description
| `xref:BloombergLP/bdljsn/swap-085.adoc[BloombergLP::bdljsn::swap]`
| Exchange the values of the specified `a` and `b` objects&period;
| `xref:BloombergLP/bdljsn/operator_not_eq-072.adoc[BloombergLP::bdljsn::operator!&equals;]`
| Return whether `lhs` and `rhs` do not have the same value&period;
| `xref:BloombergLP/bdljsn/operator_eq-0dd8.adoc[BloombergLP::bdljsn::operator&equals;&equals;]`
| Return whether `lhs` and `rhs` have the same value&period;
|===

== Non-Member Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bdljsn/operator_not_eq-07b.adoc[`operator!&equals;`]
| Same as the related overload above for `operator!&equals;`&period;
| xref:BloombergLP/bdljsn/operator_eq-048a.adoc[`operator&equals;&equals;`]
| Same as the related overload above for `operator&equals;&equals;`&period;
|===


[.small]#Created with https://www.mrdocs.com[MrDocs]#
