Medical Imaging Interaction Toolkit  2018.4.99-6aa36ba9
Medical Imaging Interaction Toolkit
Json Namespace Reference

JSON (JavaScript Object Notation). More...

Classes

class  FastWriter
 Outputs a Value in JSON format without formatting (not human friendly). More...
 
class  Features
 Configuration passed to reader and writer. This configuration object can be used to force the Reader or Writer to behave in a standard conforming way. More...
 
class  Path
 Experimental and untested: represents a "path" to access a node. More...
 
class  PathArgument
 Experimental and untested: represents an element of the "path" to access a node. More...
 
class  Reader
 Unserialize a JSON document into a Value. More...
 
class  StaticString
 Lightweight wrapper to tag static string. More...
 
class  StyledStreamWriter
 Writes a Value in JSON format in a human friendly way, to a stream rather than to a string. More...
 
class  StyledWriter
 Writes a Value in JSON format in a human friendly way. More...
 
class  Value
 Represents a JSON value. More...
 
class  ValueConstIterator
 const iterator for object and array value. More...
 
class  ValueIterator
 Iterator for object and array value. More...
 
class  ValueIteratorBase
 base class for Value iterators. More...
 
class  Writer
 Abstract class for writers. More...
 

Typedefs

typedef char UIntToStringBuffer[uintToStringBufferSize]
 
typedef int Int
 
typedef unsigned int UInt
 
typedef long long int Int64
 
typedef unsigned long long int UInt64
 
typedef Int64 LargestInt
 
typedef UInt64 LargestUInt
 
typedef unsigned int ArrayIndex
 

Enumerations

enum  { uintToStringBufferSize }
 
enum  ValueType {
  nullValue, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue
}
 Type of the value held by a Value object. More...
 
enum  CommentPlacement { commentBefore, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement }
 

Functions

static std::string codePointToUTF8 (unsigned int cp)
 Converts a unicode code-point to UTF-8. More...
 
static bool isControlCharacter (char ch)
 Returns true if ch is a control character (in range [0,32[). More...
 
static void uintToString (LargestUInt value, char *&current)
 
static bool in (Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4)
 
static bool in (Reader::Char c, Reader::Char c1, Reader::Char c2, Reader::Char c3, Reader::Char c4, Reader::Char c5)
 
static bool containsNewLine (Reader::Location begin, Reader::Location end)
 
std::istream & operator>> (std::istream &, Value &)
 Read from 'sin' into 'root'. More...
 
static char * duplicateStringValue (const char *value, unsigned int length=unknown)
 
static void releaseStringValue (char *value)
 
static bool containsControlCharacter (const char *str)
 
std::string valueToString (LargestInt value)
 
std::string valueToString (LargestUInt value)
 
std::string valueToString (double value)
 
std::string valueToString (bool value)
 
std::string valueToQuotedString (const char *value)
 
std::ostream & operator<< (std::ostream &, const Value &root)
 Output using the StyledStreamWriter. More...
 
std::string valueToString (Int value)
 
std::string valueToString (UInt value)
 

Variables

static const unsigned int unknown
 Unknown size marker. More...
 

Detailed Description

JSON (JavaScript Object Notation).

Typedef Documentation

◆ ArrayIndex

typedef unsigned int Json::ArrayIndex

Definition at line 217 of file jsoncpp.h.

◆ Int

typedef int Json::Int

Definition at line 158 of file jsoncpp.h.

◆ Int64

typedef long long int Json::Int64

Definition at line 170 of file jsoncpp.h.

◆ LargestInt

Definition at line 173 of file jsoncpp.h.

◆ LargestUInt

Definition at line 174 of file jsoncpp.h.

◆ UInt

typedef unsigned int Json::UInt

Definition at line 159 of file jsoncpp.h.

◆ UInt64

typedef unsigned long long int Json::UInt64

Definition at line 171 of file jsoncpp.h.

◆ UIntToStringBuffer

typedef char Json::UIntToStringBuffer[uintToStringBufferSize]

Definition at line 152 of file jsoncpp.cpp.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
uintToStringBufferSize 

Constant that specify the size of the buffer that must be passed to uintToString.

Definition at line 146 of file jsoncpp.cpp.

◆ CommentPlacement

Enumerator
commentBefore 

a comment placed on the line before a value

commentAfterOnSameLine 

a comment just after a value on the same line

commentAfter 

a comment on the line after a value (only make sense for root value)

numberOfCommentPlacement 

Definition at line 357 of file jsoncpp.h.

◆ ValueType

Type of the value held by a Value object.

Enumerator
nullValue 

'null' value

intValue 

signed integer value

uintValue 

unsigned integer value

realValue 

double value

stringValue 

UTF-8 string value.

booleanValue 

bool value

arrayValue 

array value (ordered list)

objectValue 

object value (collection of name/value pairs).

Definition at line 345 of file jsoncpp.h.

Function Documentation

◆ codePointToUTF8()

static std::string Json::codePointToUTF8 ( unsigned int  cp)
inlinestatic

Converts a unicode code-point to UTF-8.

Definition at line 101 of file jsoncpp.cpp.

Referenced by Json::Reader::parse().

◆ containsControlCharacter()

static bool Json::containsControlCharacter ( const char *  str)
static

Definition at line 3407 of file jsoncpp.cpp.

References isControlCharacter().

Referenced by valueToQuotedString().

◆ containsNewLine()

static bool Json::containsNewLine ( Reader::Location  begin,
Reader::Location  end 
)
static

Definition at line 257 of file jsoncpp.cpp.

Referenced by Json::Reader::parse().

◆ duplicateStringValue()

static char* Json::duplicateStringValue ( const char *  value,
unsigned int  length = unknown 
)
inlinestatic

Duplicates the specified string value.

Parameters
valuePointer to the string to duplicate. Must be zero-terminated if length is "unknown".
lengthLength of the value. if equals to unknown, then it will be computed using strlen(value).
Returns
Pointer on the duplicate instance of string.

Definition at line 1594 of file jsoncpp.cpp.

References JSON_ASSERT_MESSAGE.

Referenced by releaseStringValue(), and Json::Value::Value().

◆ in() [1/2]

◆ in() [2/2]

static bool Json::in ( Reader::Char  c,
Reader::Char  c1,
Reader::Char  c2,
Reader::Char  c3,
Reader::Char  c4,
Reader::Char  c5 
)
inlinestatic

Definition at line 250 of file jsoncpp.cpp.

◆ isControlCharacter()

static bool Json::isControlCharacter ( char  ch)
inlinestatic

Returns true if ch is a control character (in range [0,32[).

Definition at line 140 of file jsoncpp.cpp.

Referenced by containsControlCharacter(), and valueToQuotedString().

◆ operator<<()

std::ostream & Json::operator<< ( std::ostream &  ,
const Value root 
)

Output using the StyledStreamWriter.

See also
Json::operator>>()

Definition at line 4213 of file jsoncpp.cpp.

References Json::StyledStreamWriter::write().

Referenced by Json::StyledStreamWriter::~StyledStreamWriter().

◆ operator>>()

std::istream & Json::operator>> ( std::istream &  ,
Value  
)

Read from 'sin' into 'root'.

Always keep comments from the input JSON.

This can be used to read a file into a particular sub-object. For example:

cin >> root["dir"]["file"];
cout << root;

Result:

{
"dir": {
    "file": {
    // The input stream JSON would be nested here.
    }
}
}
Exceptions
std::exceptionon parse error.
See also
Json::operator<<()

Definition at line 1059 of file jsoncpp.cpp.

References Json::Reader::getFormattedErrorMessages(), and Json::Reader::parse().

◆ releaseStringValue()

static void Json::releaseStringValue ( char *  value)
inlinestatic

◆ uintToString()

static void Json::uintToString ( LargestUInt  value,
char *&  current 
)
inlinestatic

Converts an unsigned integer to string.

Parameters
valueUnsigned interger to convert to string
currentInput/Output string buffer. Must have at least uintToStringBufferSize chars free.

Definition at line 161 of file jsoncpp.cpp.

Referenced by valueToString().

◆ valueToQuotedString()

std::string Json::valueToQuotedString ( const char *  value)

◆ valueToString() [1/6]

std::string Json::valueToString ( Int  value)

◆ valueToString() [2/6]

std::string Json::valueToString ( UInt  value)

◆ valueToString() [3/6]

◆ valueToString() [4/6]

std::string Json::valueToString ( LargestUInt  value)

Definition at line 3433 of file jsoncpp.cpp.

References uintToString(), and valueToString().

◆ valueToString() [5/6]

std::string Json::valueToString ( double  value)

Definition at line 3458 of file jsoncpp.cpp.

◆ valueToString() [6/6]

std::string Json::valueToString ( bool  value)

Definition at line 3498 of file jsoncpp.cpp.

Variable Documentation

◆ unknown

const unsigned int Json::unknown
static

Unknown size marker.

Definition at line 1583 of file jsoncpp.cpp.