Class for handling JSON format options.
More...
|
class | Indention |
| A class to create small proxy objects that ease indention handling. More...
|
|
|
| DcmJsonFormat (const OFBool printMetaInfo) |
| Constructor. More...
|
|
virtual | ~DcmJsonFormat () |
| Virtual destructor, does nothing.
|
|
virtual OFString | newline ()=0 |
| Method to return line break(s) More...
|
|
virtual OFString | space ()=0 |
| Method to return whitespace(s) More...
|
|
Indention | indent () |
| Method to return an indention proxy object for increasing, decreasing or printing indention. More...
|
|
virtual OFBool | asBulkDataURI (const DcmTagKey &tag, OFString &uri) |
| Check if an attribute should be exported as BulkDataURI. More...
|
|
virtual void | printValuePrefix (STD_NAMESPACE ostream &out) |
| Print the Prefix which for JSON Values needed with indention and newlines as in the format Variable given. More...
|
|
virtual void | printValueSuffix (STD_NAMESPACE ostream &out) |
| Print the Suffix which for JSON Values needed with indention and newlines as in the format Variable given. More...
|
|
virtual void | printBulkDataURIPrefix (STD_NAMESPACE ostream &out) |
| Print the Prefix which for JSON BulkDataURI needed with indention and newlines as in the format Variable given. More...
|
|
virtual void | printInlineBinaryPrefix (STD_NAMESPACE ostream &out) |
| Print the Prefix which for JSON InlineBinary needed with indention and newlines as the format specifies. More...
|
|
virtual void | printNextArrayElementPrefix (STD_NAMESPACE ostream &out) |
| Print the prefix for array elements (except the first one), with indention and newlines as the format specifies. More...
|
|
virtual OFBool | getJsonExtensionEnabled () const |
| return the flag indicating whether extended JSON number encoding is enabled.
|
|
virtual void | setJsonExtensionEnabled (OFBool enabled) |
| set the flag indicating whether extended JSON number encoding is enabled. More...
|
|
virtual NumStringPolicy | getJsonNumStringPolicy () const |
| return the flag defining how IS/DS elements should be converted to JSON.
|
|
virtual void | setJsonNumStringPolicy (NumStringPolicy policy) |
| set the flag defining how IS/DS elements should be converted to JSON. More...
|
|
|
const OFBool | printMetaheaderInformation |
| Option that defines if metaheader information should be printed.
|
|
|
virtual void | printIndention (STD_NAMESPACE ostream &out)=0 |
| Indent to the specific level. More...
|
|
virtual void | increaseIndention ()=0 |
| Used for increasing the indention level.
|
|
virtual void | decreaseIndention ()=0 |
| Used for decreasing the indention level.
|
|
Class for handling JSON format options.
Base class to implement custom formatting. Purpose:
- individual output formatting
- normalization of DecimalString and IntegerString e.g. normalization of leading zeros
- escaping of special JSON control characters
- outputting the correct indention and symbols for "Value", "BulkDataURI", etc.
Usage Example:
#include "dcmtk/dcmdata/dcjson.h"
{
}
OFBool good() const
check if the status is OK.
Definition: ofcond.h:312
Implementing a custom formatter:
{
CustomJsonFormat(const OFBool printMetaInfo = OFTrue)
{
}
{
return "\t";
}
}
a simple string class that implements a subset of std::string.
Definition: ofstring.h:76
◆ NumStringPolicy
an enumeration defining how to convert IS/DS elements to JSON
Enumerator |
---|
NSP_auto | write as number if possible (i.e.
the value is a valid JSON number), as string otherwise.
|
NSP_always_number | always write as JSON number, fail with an error code if the value is not a valid JSON number
|
NSP_always_string | always write as JSON string
|
◆ DcmJsonFormat()
DcmJsonFormat::DcmJsonFormat |
( |
const OFBool |
printMetaInfo | ) |
|
|
inline |
Constructor.
- Parameters
-
printMetaInfo | parameter that defines if meta information should be written |
◆ asBulkDataURI()
virtual OFBool DcmJsonFormat::asBulkDataURI |
( |
const DcmTagKey & |
tag, |
|
|
OFString & |
uri |
|
) |
| |
|
virtual |
Check if an attribute should be exported as BulkDataURI.
Override this function to implement bulk data URI output.
- Parameters
-
tag | the tag of the attribute being printed, for letting the implementation decide how to handle it. |
uri | the resulting URI to output. |
- Returns
- OFTrue if yes, OFFalse if no.
Usage Example:
{
CustomJsonFormat(const OFBool printMetaInfo = OFTrue,
... bulkDataURIDatabase)
, TheDatabase(bulkDataURIDatabase)
{
}
{
... result = TheDatabase.findBulkDataFor(tag);
if (result.found())
{
uri = result.uri();
return OFTrue;
}
return OFFalse;
}
... TheDatabase;
}
class maintaining a attribute tag (group and element number)
Definition: dctagkey.h:42
◆ escapeControlCharacters()
static void DcmJsonFormat::escapeControlCharacters |
( |
STD_NAMESPACE ostream & |
out, |
|
|
OFString const & |
value |
|
) |
| |
|
static |
Escapes all forbidden control characters in JSON.
- Parameters
-
out | output stream to which the escaped String is written |
value | String that should be escaped |
◆ indent()
Method to return an indention proxy object for increasing, decreasing or printing indention.
- Returns
- an indention proxy object.
◆ newline()
virtual OFString DcmJsonFormat::newline |
( |
| ) |
|
|
pure virtual |
◆ normalizeDecimalString()
static void DcmJsonFormat::normalizeDecimalString |
( |
OFString & |
value | ) |
|
|
static |
Normalize Decimal String to specific JSON format.
remove leading zeros, except before dot. Example:
00.123 --> 0.123
023.12 --> 23.12
-01.00 --> -1.00
0200 --> 200
.12 --> 0.12
000.1 --> 0.1
- Parameters
-
value | String that should be normalize |
◆ normalizeIntegerString()
static void DcmJsonFormat::normalizeIntegerString |
( |
OFString & |
value | ) |
|
|
static |
Normalize Integer String to specific JSON format.
remove leading zeros, except before dot. Example:
000 --> 0
023 --> 23
-01 --> -1
0200 --> 200
- Parameters
-
value | String that should be normalize |
◆ printBulkDataURIPrefix()
virtual void DcmJsonFormat::printBulkDataURIPrefix |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
virtual |
Print the Prefix which for JSON BulkDataURI needed with indention and newlines as in the format Variable given.
Example:
- Parameters
-
out | output stream to which the Value prefix is written |
◆ printIndention()
virtual void DcmJsonFormat::printIndention |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
protectedpure virtual |
◆ printInlineBinaryPrefix()
virtual void DcmJsonFormat::printInlineBinaryPrefix |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
virtual |
Print the Prefix which for JSON InlineBinary needed with indention and newlines as the format specifies.
Example:
- Parameters
-
out | output stream to which the Value prefix is written |
◆ printNextArrayElementPrefix()
virtual void DcmJsonFormat::printNextArrayElementPrefix |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
virtual |
Print the prefix for array elements (except the first one), with indention and newlines as the format specifies.
Example:
- Parameters
-
out | output stream to which the Value prefix is written |
◆ printNumberDecimal()
static void DcmJsonFormat::printNumberDecimal |
( |
STD_NAMESPACE ostream & |
out, |
|
|
OFString & |
value |
|
) |
| |
|
static |
Print either null if empty or a Number as normalized IntegerDecimal.
- Parameters
-
out | output stream to which the Value prefix is written |
value | String that should be printed |
◆ printNumberInteger()
static void DcmJsonFormat::printNumberInteger |
( |
STD_NAMESPACE ostream & |
out, |
|
|
OFString & |
value |
|
) |
| |
|
static |
Print either null if empty or a Number as normalized IntegerString.
- Parameters
-
out | output stream to which the Value prefix is written |
value | String that should be printed |
◆ printString()
static void DcmJsonFormat::printString |
( |
STD_NAMESPACE ostream & |
out, |
|
|
const OFString & |
value |
|
) |
| |
|
static |
Prints either null if empty or the string value (with all illegal characters escaped).
- Parameters
-
out | output stream to which the Value prefix is written |
value | String that should be printed |
◆ printValuePrefix()
virtual void DcmJsonFormat::printValuePrefix |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
virtual |
Print the Prefix which for JSON Values needed with indention and newlines as in the format Variable given.
Example:
- Parameters
-
out | output stream to which the Value prefix is written |
◆ printValueString()
static void DcmJsonFormat::printValueString |
( |
STD_NAMESPACE ostream & |
out, |
|
|
const OFString & |
value |
|
) |
| |
|
static |
Prints either null if empty or a quoted string (with leading and ending quotation marks and all illegal characters escaped).
- Parameters
-
out | output stream to which the Value prefix is written |
value | String that should be printed |
◆ printValueSuffix()
virtual void DcmJsonFormat::printValueSuffix |
( |
STD_NAMESPACE ostream & |
out | ) |
|
|
virtual |
Print the Suffix which for JSON Values needed with indention and newlines as in the format Variable given.
Example:
- Parameters
-
out | output stream to which the Value prefix is written |
◆ setJsonExtensionEnabled()
virtual void DcmJsonFormat::setJsonExtensionEnabled |
( |
OFBool |
enabled | ) |
|
|
inlinevirtual |
set the flag indicating whether extended JSON number encoding is enabled.
- Parameters
-
enabled | new value of the flag |
References enableJsonExtension.
◆ setJsonNumStringPolicy()
virtual void DcmJsonFormat::setJsonNumStringPolicy |
( |
NumStringPolicy |
policy | ) |
|
|
inlinevirtual |
set the flag defining how IS/DS elements should be converted to JSON.
- Parameters
-
policy | new value of the flag |
References numStringPolicy.
◆ space()
virtual OFString DcmJsonFormat::space |
( |
| ) |
|
|
pure virtual |
◆ enableJsonExtension
OFBool DcmJsonFormat::enableJsonExtension |
|
private |
Option that defines if the inofficial JSON extension should be permitted under which decimal numbers may have the values "-inf", "inf" or "nan".
Default is OFFalse, in which case such values will lead to an error code being returned instead.
Referenced by getJsonExtensionEnabled(), and setJsonExtensionEnabled().
◆ numStringPolicy
The documentation for this class was generated from the following file:
- dcmdata/include/dcmtk/dcmdata/dcjson.h