[#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; See the  section for information on the class attributes&period; Note that the class invariants are identically the constraints on the individual attributes&period;
| xref:BloombergLP/baljsn/DatumEncoderOptions.adoc[`DatumEncoderOptions`] 
| This simply constrained (value&hyphen;semantic) attribute class specifies options for encoding `Datum` objects in the JSON format&period; See the  section for information on the class attributes&period; Note that the class invariants are identically the constraints on the individual attributes&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; The `decode` methods are function templates that will decode any object that meets the requirements of a sequence, choice, or array object as defined in the `bdlat&lowbar;sequencefunctions`, `bdlat&lowbar;choicefunctions`, and `bdlat&lowbar;choicefunctions` components respectively&period; These generic frameworks provide a common compile&hyphen;time interface for manipulating struct&hyphen;like and union&hyphen;like objects&period; In particular, the types generated by `bas&lowbar;codegen&period;pl` provide the necessary interface and can be decoded using this component&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; Note that the operators provided in this `class` match the function signatures required of visitors decoding into compatible types&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; This is a component&hyphen;private class and should not be used outside of this component&period; Note that the operators provided in this `class` match the function signatures required of visitors decoding into elements of compatible types&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 that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts an &quot;attribute&quot; object that satisfies one of the `bdlat` type&hyphen;category concepts, and an optional `bdlat&lowbar;TypeCategory` tag type that corresponds to the attribute&apos;s `bdlat` type category&period; Each function&hyphen;call&hyphen;operator overload encodes a JSON representation of the specified attribute to the `formatter` supplied on construction&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_AttributeVisitor.adoc[`EncodeImplUtil&lowbar;AttributeVisitor`] 
| This component&hyphen;private class provides a function object that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts an &quot;attribute&quot; object that satisfies one of the `bdlat` type&hyphen;category concepts, and an &quot;attribute info&quot; object that describes various metadata of the attribute&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_ElementDispatcher.adoc[`EncodeImplUtil&lowbar;ElementDispatcher`] 
| This component&hyphen;private class provides a function object that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts an &quot;element&quot; object that satisfies one of the `bdlat` type&hyphen;category concepts, and an optional `bdlat&lowbar;TypeCategory` tag type that corresponds to the element&apos;s `bdlat` type category&period; Each function&hyphen;call&hyphen;operator overload encodes a JSON representation of the specified selection to the `formatter` supplied on construction&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_ElementVisitor.adoc[`EncodeImplUtil&lowbar;ElementVisitor`] 
| This component&hyphen;private class provides a function object that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts an &quot;element&quot; object that satisfies 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 that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts a &quot;selection&quot; object that satisfies one of the `bdlat` type&hyphen;category concepts, and an optional `bdlat&lowbar;TypeCategory` tag type that corresponds to the selections&apos;s `bdlat` type category&period; Each function&hyphen;call&hyphen;operator overload encodes a JSON representation of the specified selection to the `formatter` supplied on construction&period;
| xref:BloombergLP/baljsn/EncodeImplUtil_SelectionVisitor.adoc[`EncodeImplUtil&lowbar;SelectionVisitor`] 
| This component&hyphen;private class provides a function object that closes over the `formatter`, `logStream`, and `options` parameters that are shared between all encoding operations provided in this component&period; The function&hyphen;call operator of this class provides an overload set that accepts a &quot;selection&quot; object that satisfies one of the `bdlat` type&hyphen;category concepts, and a &quot;selection info&quot; object that describes various metadata of the selection&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; The `encode` methods are function templates that will encode any object that meets the requirements of a sequence, choice, or array object as defined in the `bdlat&lowbar;sequencefunctions`, `bdlat&lowbar;choicefunctions`, and `bdlat&lowbar;choicefunctions` components respectively&period; These generic frameworks provide a common compile&hyphen;time interface for accessing struct&hyphen;like and union&hyphen;like objects&period; In particular, the types generated by `bas&lowbar;codegen&period;pl` provide the necessary interface and can be encoded using this component&period;
| xref:BloombergLP/baljsn/EncoderOptions.adoc[`EncoderOptions`] 
| Options for performing JSON encoding&period; `EncodingStyle` is either `COMPACT` or `PRETTY`&period; If `EncodingStyle` is `COMPACT`, no whitespace will be added between elements&period; If encoding style is `PRETTY`, then the `InitialIndentLevel` and `SpacesPerLevel` parameters are used to specify the formatting of the output&period; Note that `InitialIndentLevel` and `SpacesPerLevel` are ignored when `EncodingStyle` is `COMPACT` (this is the default)&period; The `EncodeEmptyArrays` and `EncodeNullElements` encode empty array and null elements respectively&period; By default empty array and null elements are not encoded&period; The `EncodeInfAndNaNAsStrings` attribute provides users the option to encode `Infinity` and `NaN` floating point values as strings&period; These values do not have a valid JSON representation and by default such value will result in an encoding error&period; The `DatetimeFractionalSecondPrecision` specifies the precision of milliseconds printed with date time values&period; By default a precision of `3` decimal places is used&period; The `MaxFloatPrecision` and `MaxDoublePrecision` attributes allow specifying the maximum precision for `float` and `double` values&period; When not specified, or 0 is specified, the precision is determined automatically to use enough digits to ensure restoring the original binary floating point value by a reader&period; We recommend against setting these options&colon; they were provided prior to the current default behavior (of choosing the shortest presentation that can be restored to the original value) being available&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 providing operations for rending JSON text elements to an output stream (supplied at construction) according to a set of formatting options (also supplied at construction)&period; This is a component&hyphen;private class and should not be used outside of this component&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 providing operations for rendering JSON text elements to an output stream (supplied at construction) according to a set of formatting options (also supplied at construction)&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; In each case, the resulting object is a different representation of the data in the original&period; This conversion is analogous to the encoding and decoding operations provided elsewhere in this package&semi; however, the `convert` methods here avoid the creation of any textual representation of the data&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; Note that the operators provided in this `class` match the function signatures required of visitors decoding into compatible types&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; This is a component&hyphen;private class and should not be used outside of this component&period; Note that the operators provided in this `class` match the function signatures required of visitors decoding into elements of compatible types&period;
| xref:BloombergLP/baljsn/JsonFormatter.adoc[`JsonFormatter`] 
| This class implements a formatter mechanism that assembles a (potentially complicated) `bdljsn&colon;&colon;Json` object according to the invocations of the formatter&apos;s manipulators&period;
| xref:BloombergLP/baljsn/JsonFormatter_State.adoc[`JsonFormatter&lowbar;State`] 
| This `struct` defines an enumeration of the internal states that a a `JsonFormatter` can reach as it processes user requests to `openArray`, `putValue`(s), `closeArray`, etc&period; These states influence the formatter and, in some build modes, detect errors in call sequences&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 data in the JSONformat into a `bdeat` Simple type&period; The primary method is `getValue`,which decodes into a specified object and is overloaded for all `bdeat`Simple types&period;
| xref:BloombergLP/baljsn/JsonTokenizer.adoc[`JsonTokenizer`] 
| This class implements a mechanism that makes the organization and values of a non&hyphen;scalar `bdljsn&colon;&colon;Json` object available as a series of tokens&period; Some tokens have associated values&period; See &period;
| xref:BloombergLP/baljsn/JsonTokenizer_Visitor.adoc[`JsonTokenizer&lowbar;Visitor`] 
| This class provides a mechanism for extracting token information from a `bdljsn&colon;&colon;Json` object, transferring that information to a parent `baljsn&colon;&colon;JsonTokenizer` object (which considers this visitor a `friend`), and, if appropriate, arranging for the visiting of a subordinate `bdljsn&colon;&colon;Json` object&period;
| xref:BloombergLP/baljsn/ParserUtil.adoc[`ParserUtil`] 
| This class provides utility functions for decoding data in the JSONformat into a `bdlat` Simple type&period; The primary method is `getValue`,which decodes into a specified object and is overloaded for all `bdlat`Simple types&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 providing operations for rendering JSON text elements to an output stream (supplied at construction) according to a set of formatting options (also supplied at construction)&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]#
