[#BloombergLP-bdljsn] = xref:BloombergLP.adoc[BloombergLP]::bdljsn :relfileprefix: ../ :mrdocs: Components providing JSON parsing and generation facilities. == Types [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdljsn/Error.adoc[`Error`] | This unconstrained (value‐semantic) attribute class specifies a description of an error in processing a (JSON) document. See the for information on the class attributes. Note that the class invariants are identically the constraints on the individual attributes. | xref:BloombergLP/bdljsn/Json.adoc[`Json`] | This type is designed to be a thin wrapper around a variant of the possible JSON types, using a BDE‐style variant interface. | xref:BloombergLP/bdljsn/JsonArray.adoc[`JsonArray`] | This type is designed to replicate much of the standard sequence container interface, eliding interfaces that are less relevant for a non‐generic container. Note that a `bsl::vector` is chosen for the implementation because our implementation permits the element type to be incomplete (when just spelling the type name). | xref:BloombergLP/bdljsn/JsonNull-0b.adoc[`JsonNull`] | This type represents the JSON null value. There is only 1 value of this type, so all objects compare equal, hash to the same value, etc. | xref:BloombergLP/bdljsn/JsonNumber.adoc[`JsonNumber`] | This class defines a value‐semantic class that represents a JSON number. Objects of this class have a value determined at construction and does not change except by assignment from or swap with another `JsonNumber` object. The value can be specified by supplying a string that conforms to the {JSON Textual Specification} or from one of the {Supported Types}. The value of a JSON object can be converted to any of those types; however, some of those conversions can be inexact. | xref:BloombergLP/bdljsn/JsonObject.adoc[`JsonObject`] | This type is designed to replicate much of the standard associative container interface, eliding interfaces that are less relevant for a non‐generic container, like hasher and comparator access, emplacement, nodes, capacity management, etc. | xref:BloombergLP/bdljsn/JsonObject_MemberInitializer.adoc[`JsonObject_MemberInitializer`] | This component‐private class is designed capture a set of values that can be used to initialize an element in a `JsonObject`. The purpose here is to enable list‐initialization (including nested lists) of JSON objects. | xref:BloombergLP/bdljsn/JsonTestSuiteUtil.adoc[`JsonTestSuiteUtil`] | This utility `struct` provides a namespace for the test points of the _JSON_ _Test_ _Suite_. | xref:BloombergLP/bdljsn/JsonType.adoc[`JsonType`] | This `struct` provides a namespace for enumerating the set value types of the JSON language. See `Enum` in the TYPES sub‐section for details. | xref:BloombergLP/bdljsn/JsonUtil.adoc[`JsonUtil`] | This `struct` provides a namespace for utility functions that provide `read` and `write` operations to/from `Json` objects. | xref:BloombergLP/bdljsn/Json_ConstructVisitor.adoc[`Json_ConstructVisitor`] | This component‐private class is used to construct a `Json` object from a `Json_Initializer` object. `Json_Initializer` is a variant class defined below. | xref:BloombergLP/bdljsn/Json_Initializer.adoc[`Json_Initializer`] | This component‐private class is designed capture a set of values that can be used to initialize a `Json` object, or an element in a `JsonArray`, or the "value" portion of a `JsonObject` member. This class is not modifiable, and (except for small types like `int`) does not own the objects that it holds. The purpose here is to enable list‐initialization (including nested lists) of `Json`, `JsonArray`, and `JsonObject` objects. The lifetime of a `Json_Initializer` object should not exceed that of list‐initialization expression because pointers held here would no longer be valid. | xref:BloombergLP/bdljsn/Json_StringInvariantGuard.adoc[`Json_StringInvariantGuard`] | This is a component‐private guard class. | xref:BloombergLP/bdljsn/Json_VisitUtil.adoc[`Json_VisitUtil`] | The `Json_VisitUtil` type. | xref:BloombergLP/bdljsn/Location.adoc[`Location`] | This unconstrained (value‐semantic) attribute class specifies a location in a (JSON) document. See the for information on the class attributes. Note that the class invariants are identically the constraints on the individual attributes. | xref:BloombergLP/bdljsn/NumberUtil.adoc[`NumberUtil`] | This `struct` provides a namespace for a suite of functions that convert between a JSON formated numeric value and various numerical types. The valid syntax for a JSON formatted numeric value is spelled out in `https://www.rfc‐editor.org/rfc/rfc8259#section‐6`. | xref:BloombergLP/bdljsn/NumberUtil_IsSigned.adoc[`NumberUtil_IsSigned`] | This class will be a `bsl::true_type` if the specified (template parameter type) `t_TYPE` is a signed type, and `bsl::false_type` otherwise. `t_TYPE` shall be an integral type. Note that currently bsl::is_signed is not available for C++03 platforms. | xref:BloombergLP/bdljsn/ReadOptions.adoc[`ReadOptions`] | This simply constrained (value‐semantic) attribute class specifies options for reading a JSON document. See the for information on the class attributes. Note that the class invariants are identically the constraints on the individual attributes. | xref:BloombergLP/bdljsn/StringUtil.adoc[`StringUtil`] | This class provides utility functions for converting arbitrary UTF‐8 sequences into JSON strings and visa versa. See []Strings) for details of these transformations. | xref:BloombergLP/bdljsn/Tokenizer.adoc[`Tokenizer`] | This `class` provides a mechanism for traversing JSON data stored in a `bsl::streambuf` one node at a time and allows clients to access the data associated with that node, including its type and data value. | xref:BloombergLP/bdljsn/WriteOptions.adoc[`WriteOptions`] | This simply constrained (value‐semantic) attribute class specifies options for writing a JSON document. See the for information on the class attributes. Note that the class invariants are identically the constraints on the individual attributes. | xref:BloombergLP/bdljsn/WriteStyle.adoc[`WriteStyle`] | This `struct` provides a namespace for enumerating the formatting styles that can be used for writing a JSON document. See `Enum` in the TYPES sub‐section for details. |=== == Functions [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdljsn/hashAppend-05.adoc[`hashAppend`] | `hashAppend` overloads | xref:BloombergLP/bdljsn/operator_json.adoc[`operator""_json`] | Return a `bdljsn::Json` object having the value of the JSON described in the specified `text` of the specified `numBytes`. If `text` is not a valid JSON document then invoke the currently installed `bsls::Assert` failure handler. | xref:BloombergLP/bdljsn/swap-0b.adoc[`swap`] | `swap` overloads | xref:BloombergLP/bdljsn/operator_lshift-07d.adoc[`operator<<`] | Stream insertion operators | xref:BloombergLP/bdljsn/operator_eq-09.adoc[`operator==`] | Equality operators | xref:BloombergLP/bdljsn/operator_not_eq-085.adoc[`operator!=`] | Inequality operators |=== == Variables [cols="1,4"] |=== | Name| Description | xref:BloombergLP/bdljsn/jsonNull-08.adoc[`jsonNull`] | The singular value of the `JsonNull` type. |=== [.small]#Created with https://www.mrdocs.com[MrDocs]#