[#BloombergLP-baljsn-Decoder] = xref:BloombergLP.adoc[BloombergLP]::xref:BloombergLP/baljsn.adoc[baljsn]::Decoder :relfileprefix: ../../ :mrdocs: This class provides a mechanism for decoding JSON data into value‐semantic objects. 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_sequencefunctions`, `bdlat_choicefunctions`, and `bdlat_choicefunctions` components respectively. These generic frameworks provide a common compile‐time interface for manipulating struct‐like and union‐like objects. In particular, the types generated by `bas_codegen.pl` provide the necessary interface and can be decoded using this component. == Synopsis Declared in `<baljsn_decoder.h>` [source,cpp,subs="verbatim,replacements,macros,-callouts"] ---- class Decoder; ---- == Member Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/baljsn/Decoder/2constructor.adoc[`Decoder`] [.small]#[constructor]# | Construct a decoder object using the optionally specified `basicAllocator`. If `basicAllocator` is 0, the default allocator is used. | xref:BloombergLP/baljsn/Decoder/decode-04.adoc[`decode`] | `decode` overloads | xref:BloombergLP/baljsn/Decoder/decodeAny-038.adoc[`decodeAny`] | `decodeAny` overloads | xref:BloombergLP/baljsn/Decoder/loggedMessages.adoc[`loggedMessages`] | Return a string containing any error, warning, or trace messages that were logged during the last call to the `decode` method. The log is reset each time `decode` is called. | xref:BloombergLP/baljsn/Decoder/numUnknownElementsSkipped.adoc[`numUnknownElementsSkipped`] | Return the number of unknown elements that were skipped during the previous decoding operation. Note that unknown elements are skipped only if `options.skipUnknownElements() == true`. |=== == Friends [cols="1,4"] |=== | Name| Description | `xref:BloombergLP/baljsn/Decoder_ElementVisitor.adoc[BloombergLP::baljsn::Decoder_ElementVisitor]` | This `class` implements a visitor for decoding elements within a sequence, choice, or array type. This is a component‐private class and should not be used outside of this component. Note that the operators provided in this `class` match the function signatures required of visitors decoding into elements of compatible types. | `xref:BloombergLP/baljsn/Decoder_DecodeImpProxy.adoc[BloombergLP::baljsn::Decoder_DecodeImpProxy]` | This class provides a functor that dispatches the appropriate `decodeImp` method for a `bdeat` Dynamic type. Note that the operators provided in this `class` match the function signatures required of visitors decoding into compatible types. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#