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

Components providing JSON encoding and decoding facilities&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/baljsn/ConvertFromJsonOptions.adoc[`ConvertFromJsonOptions`] 
| Options for converting `bdljsn&colon;&colon;Json` objects to `bdlat`&hyphen;compliant objects&period;
| xref:BloombergLP/baljsn/ConvertToJsonOptions.adoc[`ConvertToJsonOptions`] 
| Options for converting `bdlat` objects to `bdljsn&colon;&colon;Json`&period;
| xref:BloombergLP/baljsn/DatumDecoderOptions.adoc[`DatumDecoderOptions`] 
| This simply constrained (value&hyphen;semantic) attribute class specifies options for decoding `Datum` objects in the JSON format&period;
| xref:BloombergLP/baljsn/DatumEncoderOptions.adoc[`DatumEncoderOptions`] 
| Options for encoding `Datum` objects in the JSON format&period;
| xref:BloombergLP/baljsn/DatumUtil.adoc[`DatumUtil`] 
| This `struct` provides a namespace for a suite of functions that convert between a JSON formated string and a `bdld&colon;&colon;Datum`&period;
| xref:BloombergLP/baljsn/Decoder.adoc[`Decoder`] 
| This class provides a mechanism for decoding JSON data into value&hyphen;semantic objects&period;
| xref:BloombergLP/baljsn/DecoderOptions.adoc[`DecoderOptions`] 
| Options for controlling the JSON decoding process&period;
| xref:BloombergLP/baljsn/DecoderOptionsUtil.adoc[`DecoderOptionsUtil`] 
| This `struct` provides a namespace for functions that set `DecoderOptions` to particular configurations&period;
| xref:BloombergLP/baljsn/Decoder_DecodeImpProxy.adoc[`Decoder&lowbar;DecodeImpProxy`] 
| This class provides a functor that dispatches the appropriate `decodeImp` method for a `bdeat` Dynamic type&period;
| xref:BloombergLP/baljsn/Decoder_ElementVisitor.adoc[`Decoder&lowbar;ElementVisitor`] 
| This `class` implements a visitor for decoding elements within a sequence, choice, or array type&period;
| xref:BloombergLP/baljsn/Decoder_RequiredAttrsVisitor.adoc[`Decoder&lowbar;RequiredAttrsVisitor`] 
| This class provides a functor that finds and remembers all non&hyphen;optional sequence attributes&period;
| xref:BloombergLP/baljsn/EncodeImplUtil.adoc[`EncodeImplUtil`] 
| This component&hyphen;private utility `struct` provides a suite of functions that encode `bdlat` types in the JSON format&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_AttributeDispatcher.adoc[`EncodeImplUtil&lowbar;AttributeDispatcher`] 
| This component&hyphen;private class provides a function object used to encode sequence attributes by `bdlat` type category&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_AttributeVisitor.adoc[`EncodeImplUtil&lowbar;AttributeVisitor`] 
| This component&hyphen;private class provides a function object used to encode sequence attributes that satisfy one of the `bdlat` type&hyphen;category concepts&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_ElementDispatcher.adoc[`EncodeImplUtil&lowbar;ElementDispatcher`] 
| This component&hyphen;private class provides a function object used to encode array elements by `bdlat` type category&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_ElementVisitor.adoc[`EncodeImplUtil&lowbar;ElementVisitor`] 
| This component&hyphen;private class provides a function object used to encode array elements that satisfy one of the `bdlat` type&hyphen;category concepts&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_SelectionDispatcher.adoc[`EncodeImplUtil&lowbar;SelectionDispatcher`] 
| This component&hyphen;private class provides a function object used to encode choice selections by `bdlat` type category&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_SelectionVisitor.adoc[`EncodeImplUtil&lowbar;SelectionVisitor`] 
| This component&hyphen;private class provides a function object used to encode choice selections that satisfy one of the `bdlat` type&hyphen;category concepts&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_ValueDispatcher.adoc[`EncodeImplUtil&lowbar;ValueDispatcher`] 
| This component&hyphen;private class provides a function object used to encode values that satisfy one of the `bdlat` type&hyphen;category concepts&period;
| xref:BloombergLP/baljsn/Encoder.adoc[`Encoder`] 
| This class provides a mechanism for encoding value&hyphen;semantic objects in the JSON format&period;
| xref:BloombergLP/baljsn/EncoderOptions.adoc[`EncoderOptions`] 
| Options for performing JSON encoding&period;
| xref:BloombergLP/baljsn/EncoderTestAddress.adoc[`EncoderTestAddress`] 
| Test type `EncoderTestAddress` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestChoiceWithAllCategories.adoc[`EncoderTestChoiceWithAllCategories`] 
| Test type `EncoderTestChoiceWithAllCategories` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestChoiceWithAllCategoriesChoice.adoc[`EncoderTestChoiceWithAllCategoriesChoice`] 
| Test type `EncoderTestChoiceWithAllCategoriesChoice` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestChoiceWithAllCategoriesCustomizedType.adoc[`EncoderTestChoiceWithAllCategoriesCustomizedType`] 
| Test type `EncoderTestChoiceWithAllCategoriesCustomizedType` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestChoiceWithAllCategoriesEnumeration.adoc[`EncoderTestChoiceWithAllCategoriesEnumeration`] 
| Test type `EncoderTestChoiceWithAllCategoriesEnumeration` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestChoiceWithAllCategoriesSequence.adoc[`EncoderTestChoiceWithAllCategoriesSequence`] 
| Test type `EncoderTestChoiceWithAllCategoriesSequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestDegenerateChoice1.adoc[`EncoderTestDegenerateChoice1`] 
| Test type `EncoderTestDegenerateChoice1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestDegenerateChoice1Sequence.adoc[`EncoderTestDegenerateChoice1Sequence`] 
| Test type `EncoderTestDegenerateChoice1Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestEmployee.adoc[`EncoderTestEmployee`] 
| Test type `EncoderTestEmployee` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithAllCategories.adoc[`EncoderTestSequenceWithAllCategories`] 
| Test type `EncoderTestSequenceWithAllCategories` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithAllCategoriesChoice.adoc[`EncoderTestSequenceWithAllCategoriesChoice`] 
| Test type `EncoderTestSequenceWithAllCategoriesChoice` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithAllCategoriesCustomizedType.adoc[`EncoderTestSequenceWithAllCategoriesCustomizedType`] 
| Test type `EncoderTestSequenceWithAllCategoriesCustomizedType` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithAllCategoriesEnumeration.adoc[`EncoderTestSequenceWithAllCategoriesEnumeration`] 
| Test type `EncoderTestSequenceWithAllCategoriesEnumeration` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithAllCategoriesSequence.adoc[`EncoderTestSequenceWithAllCategoriesSequence`] 
| Test type `EncoderTestSequenceWithAllCategoriesSequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged0.adoc[`EncoderTestSequenceWithUntagged0`] 
| Test type `EncoderTestSequenceWithUntagged0` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged1.adoc[`EncoderTestSequenceWithUntagged1`] 
| Test type `EncoderTestSequenceWithUntagged1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged10.adoc[`EncoderTestSequenceWithUntagged10`] 
| Test type `EncoderTestSequenceWithUntagged10` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged10Sequence.adoc[`EncoderTestSequenceWithUntagged10Sequence`] 
| Test type `EncoderTestSequenceWithUntagged10Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged11.adoc[`EncoderTestSequenceWithUntagged11`] 
| Test type `EncoderTestSequenceWithUntagged11` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged11Sequence.adoc[`EncoderTestSequenceWithUntagged11Sequence`] 
| Test type `EncoderTestSequenceWithUntagged11Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged11Sequence1.adoc[`EncoderTestSequenceWithUntagged11Sequence1`] 
| Test type `EncoderTestSequenceWithUntagged11Sequence1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged12.adoc[`EncoderTestSequenceWithUntagged12`] 
| Test type `EncoderTestSequenceWithUntagged12` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged12Sequence.adoc[`EncoderTestSequenceWithUntagged12Sequence`] 
| Test type `EncoderTestSequenceWithUntagged12Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged13.adoc[`EncoderTestSequenceWithUntagged13`] 
| Test type `EncoderTestSequenceWithUntagged13` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged13Sequence.adoc[`EncoderTestSequenceWithUntagged13Sequence`] 
| Test type `EncoderTestSequenceWithUntagged13Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged14.adoc[`EncoderTestSequenceWithUntagged14`] 
| Test type `EncoderTestSequenceWithUntagged14` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged1Sequence.adoc[`EncoderTestSequenceWithUntagged1Sequence`] 
| Test type `EncoderTestSequenceWithUntagged1Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged2.adoc[`EncoderTestSequenceWithUntagged2`] 
| Test type `EncoderTestSequenceWithUntagged2` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged3.adoc[`EncoderTestSequenceWithUntagged3`] 
| Test type `EncoderTestSequenceWithUntagged3` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged3Sequence.adoc[`EncoderTestSequenceWithUntagged3Sequence`] 
| Test type `EncoderTestSequenceWithUntagged3Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged3Sequence1.adoc[`EncoderTestSequenceWithUntagged3Sequence1`] 
| Test type `EncoderTestSequenceWithUntagged3Sequence1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged4.adoc[`EncoderTestSequenceWithUntagged4`] 
| Test type `EncoderTestSequenceWithUntagged4` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged4Sequence.adoc[`EncoderTestSequenceWithUntagged4Sequence`] 
| Test type `EncoderTestSequenceWithUntagged4Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged5.adoc[`EncoderTestSequenceWithUntagged5`] 
| Test type `EncoderTestSequenceWithUntagged5` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged5Sequence.adoc[`EncoderTestSequenceWithUntagged5Sequence`] 
| Test type `EncoderTestSequenceWithUntagged5Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged6.adoc[`EncoderTestSequenceWithUntagged6`] 
| Test type `EncoderTestSequenceWithUntagged6` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged7.adoc[`EncoderTestSequenceWithUntagged7`] 
| Test type `EncoderTestSequenceWithUntagged7` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged7Sequence.adoc[`EncoderTestSequenceWithUntagged7Sequence`] 
| Test type `EncoderTestSequenceWithUntagged7Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged7Sequence1.adoc[`EncoderTestSequenceWithUntagged7Sequence1`] 
| Test type `EncoderTestSequenceWithUntagged7Sequence1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged7Sequence2.adoc[`EncoderTestSequenceWithUntagged7Sequence2`] 
| Test type `EncoderTestSequenceWithUntagged7Sequence2` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged8.adoc[`EncoderTestSequenceWithUntagged8`] 
| Test type `EncoderTestSequenceWithUntagged8` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged8Sequence.adoc[`EncoderTestSequenceWithUntagged8Sequence`] 
| Test type `EncoderTestSequenceWithUntagged8Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged8Sequence1.adoc[`EncoderTestSequenceWithUntagged8Sequence1`] 
| Test type `EncoderTestSequenceWithUntagged8Sequence1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged9.adoc[`EncoderTestSequenceWithUntagged9`] 
| Test type `EncoderTestSequenceWithUntagged9` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged9Sequence.adoc[`EncoderTestSequenceWithUntagged9Sequence`] 
| Test type `EncoderTestSequenceWithUntagged9Sequence` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/EncoderTestSequenceWithUntagged9Sequence1.adoc[`EncoderTestSequenceWithUntagged9Sequence1`] 
| Test type `EncoderTestSequenceWithUntagged9Sequence1` used by `baljsn` encoder tests&period;
| xref:BloombergLP/baljsn/Encoder_Formatter.adoc[`Encoder&lowbar;Formatter`] 
| This class implements a formatter for rendering JSON text elements&period;
| xref:BloombergLP/baljsn/EncodingStyle.adoc[`EncodingStyle`] 
| Enumeration of encoding style (COMPACT or PRETTY)&period;
| xref:BloombergLP/baljsn/Formatter.adoc[`Formatter`] 
| This class implements a formatter for rendering JSON text elements&period;
| xref:BloombergLP/baljsn/JsonConverter.adoc[`JsonConverter`] 
| This class provides a mechanism for copying the constituent values of certain `bdlat`&hyphen;compatible objects to `bdljsn&colon;&colon;Json` objects, and vice versa&period;
| xref:BloombergLP/baljsn/JsonConverter_DecodeImpProxy.adoc[`JsonConverter&lowbar;DecodeImpProxy`] 
| This class provides a functor that dispatches the appropriate `decodeImp` method for a `bdeat` Dynamic type&period;
| xref:BloombergLP/baljsn/JsonConverter_ElementVisitor.adoc[`JsonConverter&lowbar;ElementVisitor`] 
| This `class` implements a visitor for decoding elements within a sequence, choice, or array type&period;
| xref:BloombergLP/baljsn/JsonFormatter.adoc[`JsonFormatter`] 
| Formatter that assembles a `bdljsn&colon;&colon;Json` object via manipulators&period;
| xref:BloombergLP/baljsn/JsonFormatter_State.adoc[`JsonFormatter&lowbar;State`] 
| Enumeration of internal states reached by a `JsonFormatter`&period;
| xref:BloombergLP/baljsn/JsonFormatter_Util.adoc[`JsonFormatter&lowbar;Util`] 
| Utilities supporting `JsonFormatter` encoding operations&period;
| xref:BloombergLP/baljsn/JsonParserUtil.adoc[`JsonParserUtil`] 
| This class provides utility functions for decoding JSON data into a `bdeat` Simple type&period;
| xref:BloombergLP/baljsn/JsonTokenizer.adoc[`JsonTokenizer`] 
| This class provides a tokenizer for non&hyphen;scalar `bdljsn&colon;&colon;Json` objects&period;
| xref:BloombergLP/baljsn/JsonTokenizer_Visitor.adoc[`JsonTokenizer&lowbar;Visitor`] 
| This class extracts token information from a `bdljsn&colon;&colon;Json` object&period;
| xref:BloombergLP/baljsn/ParserUtil.adoc[`ParserUtil`] 
| This class provides utility functions for decoding JSON data into a `bdlat` Simple type&period;
| xref:BloombergLP/baljsn/PrintUtil.adoc[`PrintUtil`] 
| This `struct` provides functions for printing objects to output streams in JSON format&period;
| xref:BloombergLP/baljsn/SimpleFormatter.adoc[`SimpleFormatter`] 
| This class implements a formatter for rendering JSON text elements&period;
|===


== Type Aliases

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/baljsn/Tokenizer.adoc[`Tokenizer`] 
| Alias for `bdljsn&colon;&colon;Tokenizer`&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/baljsn/hashAppend-0eb.adoc[`hashAppend`] 
| `hashAppend` overloads
| xref:BloombergLP/baljsn/operator_lshift-04d2.adoc[`operator&lt;&lt;`] 
| Stream insertion operators
| xref:BloombergLP/baljsn/operator_eq-063.adoc[`operator&equals;&equals;`] 
| Equality operators
| xref:BloombergLP/baljsn/operator_not_eq-07be.adoc[`operator!&equals;`] 
| Inequality operators
|===



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