Json Namespace Reference

JSON (JavaScript Object Notation). More...

## Classes

class | BatchAllocator
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 | ValueArrayAllocator
| Experimental: do not use. Allocator to customize Value internal array. Below is an example of a simple implementation (actual implementation use memory pool). More...
class | ValueConstIterator
| const iterator for object and array value. More...
class | ValueInternalArray
| A simplified deque implementation used internally by Value. More...
class | ValueInternalLink
| ValueInternalMap hash-map bucket chain link (for internal use only). More...
class | ValueInternalMap
| A linked page based hash-table implementation used internally by Value. More...
class | ValueIterator
| Iterator for object and array value. More...
class | ValueIteratorBase
| base class for Value iterators. More...
class | ValueMapAllocator
| Allocator to customize Value internal map. Below is an example of a simple implementation (default implementation actually use memory pool for speed). More...
class | Writer
| Abstract class for writers. More...

## Typedefs

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

## Enumerations

enum | ValueType { nullValue = 0, intValue, uintValue, realValue, stringValue, booleanValue, arrayValue, objectValue }
| Type of the value held by a Value object. More...
enum | CommentPlacement { commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement }
enum | { uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1 }

## Functions

std::istream & | operator>> (std::istream &, Value &)
| Read from 'sin' into 'root'. More...
std::string JSON_API | valueToString (Int value)
std::string JSON_API | valueToString (UInt value)
std::string JSON_API | valueToString (double value)
std::string JSON_API | valueToString (bool value)
std::string JSON_API | valueToQuotedString (const char *value)
std::ostream & | operator<< (std::ostream &, const Value &root)
| Output using the StyledStreamWriter. More...
static std::string | codePointToUTF8 (unsigned int cp)
| Converts a unicode code-point to UTF-8.
static bool | isControlCharacter (char ch)
| Returns true if ch is a control character (in range [0,32[).
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)
| isNull_ (true)
static char * | duplicateStringValue (const char *value, unsigned int length=unknown)
static void | releaseStringValue (char *value)
static bool | containsControlCharacter (const char *str)

## Variables

| __pad0__
static const unsigned int | unknown = (unsigned)-1
| Unknown size marker.

## Detailed Description

JSON (JavaScript Object Notation).

## Enumeration Type Documentation

anonymous enum

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

enum Json::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)

enum Json::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).

## Function Documentation

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

inlinestatic

Duplicates the specified string value.

Parameters

  value | Pointer to the string to duplicate. Must be zero-terminated if length is "unknown".
  length | Length of the value. if equals to unknown, then it will be computed using strlen(value).

Returns
  Pointer on the duplicate instance of string.

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

Output using the StyledStreamWriter.

See also
  Json::operator>>()

std::istream & Json::operator>> | ( | std::istream & | sin,
|  | Value & | root
| ) |  |

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:

Json::Value root;
cin >> root["dir"]["file"];
cout << root;

Result:

    {
    "dir": {
        "file": {
        // The input stream JSON would be nested here.
        }
    }
    }

Exceptions

  std::exception | on parse error.

See also
  Json::operator<<()

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

inlinestatic

Free the string duplicated by duplicateStringValue().

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

inlinestatic

Converts an unsigned integer to string.

Parameters

  value | Unsigned interger to convert to string
  current | Input/Output string buffer. Must have at least uintToStringBufferSize chars free.