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. 
 | 
|  | 
| virtual | ~DcmJsonFormat () | 
|  | Virtual destructor, does nothing. 
 | 
|  | 
| virtual OFString | newline ()=0 | 
|  | Method to return line break(s) 
 | 
|  | 
| virtual OFString | space ()=0 | 
|  | Method to return whitespace(s) 
 | 
|  | 
| Indention | indent () | 
|  | Method to return an indention proxy object for increasing, decreasing or printing indention. 
 | 
|  | 
| virtual OFBool | asBulkDataURI (const DcmTagKey &tag, OFString &uri) | 
|  | Check if an attribute should be exported as BulkDataURI. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| virtual void | printInlineBinaryPrefix (STD_NAMESPACE ostream &out) | 
|  | Print the Prefix which for JSON InlineBinary needed with indention and newlines as the format specifies. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
| 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. 
 | 
|  | 
|  | 
| static void | escapeControlCharacters (STD_NAMESPACE ostream &out, OFString const &value) | 
|  | Escapes all forbidden control characters in JSON. 
 | 
|  | 
| static void | normalizeDecimalString (OFString &value) | 
|  | Normalize Decimal String to specific JSON format. 
 | 
|  | 
| static void | normalizeIntegerString (OFString &value) | 
|  | Normalize Integer String to specific JSON format. 
 | 
|  | 
| static void | printString (STD_NAMESPACE ostream &out, const OFString &value) | 
|  | Prints either null if empty or the string value (with all illegal characters escaped). 
 | 
|  | 
| static void | printValueString (STD_NAMESPACE ostream &out, const OFString &value) | 
|  | Prints either null if empty or a quoted string (with leading and ending quotation marks and all illegal characters escaped). 
 | 
|  | 
| static void | printNumberInteger (STD_NAMESPACE ostream &out, OFString &value) | 
|  | Print either null if empty or a Number as normalized IntegerString. 
 | 
|  | 
| static void | printNumberDecimal (STD_NAMESPACE ostream &out, OFString &value) | 
|  | Print either null if empty or a Number as normalized IntegerDecimal. 
 | 
|  | 
|  | 
| 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. 
 | 
|  | 
| virtual void | increaseIndention ()=0 | 
|  | Used for increasing the indention level. 
 | 
|  | 
| virtual void | decreaseIndention ()=0 | 
|  | Used for decreasing the indention level. 
 | 
|  | 
|  | 
| OFBool | enableJsonExtension | 
|  | Option that defines if the inofficial JSON extension should be permitted under which decimal numbers may have the values "-inf", "inf" or "nan". 
 | 
|  | 
| NumStringPolicy | numStringPolicy | 
|  | Option that defines how IS/DS elements will be converted to JSON, as number or string. 
 | 
|  | 
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 | 
 
 
◆ 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 DcmJsonFormat(), getJsonExtensionEnabled(), and setJsonExtensionEnabled().
 
 
◆ numStringPolicy
The documentation for this class was generated from the following file:
- dcmdata/include/dcmtk/dcmdata/dcjson.h