BloombergLP::baljsn::JsonFormatter

This class implements a formatter mechanism that assembles a (potentially complicated) bdljsn::Json object according to the invocations of the formatter's manipulators.

Synopsis

Declared in <baljsn_jsonformatter.h>

class JsonFormatter;

Type Aliases

NameDescription
allocator_type Type of the allocator used to supply memory.

Member Functions

NameDescription
JsonFormatter [constructor]Create a JsonFormatter object that modifies the specified json object in accordance with subsequent calls the formatter manipulators. Optionally specify an allocator (e.g., the address of a bslma::Allocator object) to supply memory; otherwise, the default allocator is used. The behavior is undefined unless json->isNull().
addArrayElementSeparator No-op.
closeArray Indicate that there are no more elements to be added to the current array. The specified formatAsEmptyArray is ignored; arrays are unconditionally formatted.
closeMember Indicate that there are no more members to be added to the current object.
closeObject Indicate that there are no more members to be added to the current object.
dumpStack Print the internal stack of Status objects to standard output in lifo order. Each line of output consists of:
get_allocator Return the allocator used by this object to supply memory. Note that if no allocator was supplied at construction the default allocator in effect at construction is used.
nestingDepth No-op. Return 0.
openArray Create a new array. Subsequently created elements will land in this array (in order of creation) until closeArray is called. The elements can be created by putValue/putNullValue/openObject/openArray. The specified formatAsEmptyArray is ignored; arrays are unconditionally formatted.
openMember Create a new object member having the specified name. Return 0 on success and a non-zero value otherwise. An error is returned if name contains a non-UTF8 character.
openObject Create a new object (set of name/value pairs also know as "members"). Note subsequently created members will land in this object until closeObject is called.
putNullValue Set the value of the current array element or object value -- depending on the context -- to bdljsn::JsonNull. Return 0 on success and a non-zero value otherwise. An error is returned when putNullValue is called in an unexpected context.
putValue Set the value of the current scalar, array element, or object value -- depending on the context -- to the specified value of (template parameter) TYPE. The specified options is ignored except: * encodeInfAndNaNAsStrings when TYPE is a floating point type. * datetimeFractionalSecondPrecision when TYPE features a datetime or time attribute. Return 0 on success and a non-zero value otherwise. Errors are returned if value is disallowed for bdljsn::Json objects: * value is a string type and contains a non-UTF8 character. * value is a floating point type, is INF or NaN, and false == encodeInfAndNanAsStrings.

Data Members

NameDescription
d_allocator Allocator used to supply memory.
d_stack The d_stack data member.