JsonCpp project page JsonCpp home page

Json Namespace Reference

JSON (JavaScript Object Notation). More...


Classes

class  Features
 Configuration passed to reader and writer. More...
class  Reader
 Unserialize a JSON document into a Value. More...
class  StaticString
 Lightweight wrapper to tag static string. More...
class  Value
 Represents a JSON value. More...
class  PathArgument
 Experimental and untested: represents an element of the "path" to access a node. More...
class  Path
 Experimental and untested: represents a "path" to access a node. More...
class  ValueMapAllocator
 Allocator to customize Value internal map. 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  ValueInternalArray
 A simplified deque implementation used internally by Value. More...
class  ValueArrayAllocator
 Experimental: do not use. More...
class  ValueIteratorBase
 base class for Value iterators. More...
class  ValueConstIterator
 const iterator for object and array value. More...
class  ValueIterator
 Iterator for object and array value. More...
class  Writer
 Abstract class for writers. More...
class  FastWriter
 Outputs a Value in JSON format without formatting (not human friendly). More...
class  StyledWriter
 Writes a Value in JSON format in a human friendly way. More...
class  StyledStreamWriter
 Writes a Value in JSON format in a human friendly way, to a stream rather than to a string. More...

Typedefs

typedef int Int
typedef unsigned int UInt
typedef __int64 Int64
typedef unsigned __int64 UInt64
typedef Int64 LargestInt
typedef UInt64 LargestUInt
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'.
std::string valueToString (Int value)
std::string valueToString (UInt value)
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.
static ValueArrayAllocator *& arrayAllocator ()
static ValueMapAllocator *& mapAllocator ()
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)
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)
 Converts an unsigned integer to string.
static char * duplicateStringValue (const char *value, unsigned int length=unknown)
 Duplicates the specified string value.
static void releaseStringValue (char *value)
 Free the string duplicated by duplicateStringValue().
static bool containsControlCharacter (const char *str)

Variables

static struct
Json::DummyArrayAllocatorInitializer 
dummyArrayAllocatorInitializer
static struct
Json::DummyMapAllocatorInitializer 
dummyMapAllocatorInitializer
static const unsigned int unknown = (unsigned)-1
 Unknown size marker.


Detailed Description

JSON (JavaScript Object Notation).


Typedef Documentation

typedef unsigned int Json::ArrayIndex

Definition at line 23 of file forwards.h.

typedef int Json::Int

Definition at line 74 of file config.h.

typedef __int64 Json::Int64

Definition at line 83 of file config.h.

Definition at line 89 of file config.h.

Definition at line 90 of file config.h.

typedef unsigned int Json::UInt

Definition at line 75 of file config.h.

typedef unsigned __int64 Json::UInt64

Definition at line 84 of file config.h.

typedef char Json::UIntToStringBuffer[uintToStringBufferSize]

Definition at line 70 of file json_tool.h.


Enumeration Type Documentation

anonymous enum

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

Definition at line 64 of file json_tool.h.

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 42 of file value.h.

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 30 of file value.h.


Function Documentation

static ValueArrayAllocator*& Json::arrayAllocator (  )  [static]

static std::string Json::codePointToUTF8 ( unsigned int  cp  )  [inline, static]

Converts a unicode code-point to UTF-8.

Definition at line 19 of file json_tool.h.

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

Definition at line 24 of file json_writer.cpp.

References isControlCharacter().

Referenced by valueToQuotedString().

Here is the caller graph for this function:

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

Definition at line 68 of file json_reader.cpp.

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

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.

Definition at line 54 of file json_value.cpp.

References JSON_ASSERT_MESSAGE, and unknown.

Referenced by Json::Value::Value().

Here is the caller graph for this function:

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

Definition at line 61 of file json_reader.cpp.

static bool Json::in ( Reader::Char  c,
Reader::Char  c1,
Reader::Char  c2,
Reader::Char  c3,
Reader::Char  c4 
) [inline, static]

Definition at line 55 of file json_reader.cpp.

Referenced by Json::Path::Path().

Here is the caller graph for this function:

static bool Json::isControlCharacter ( char  ch  )  [inline, static]

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

Definition at line 58 of file json_tool.h.

Referenced by containsControlCharacter(), and valueToQuotedString().

Here is the caller graph for this function:

static ValueMapAllocator*& Json::mapAllocator (  )  [static]

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

Output using the StyledStreamWriter.

See also:
Json::operator>>()

Definition at line 830 of file json_writer.cpp.

References Json::StyledStreamWriter::write().

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<<()

Definition at line 870 of file json_reader.cpp.

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

static void Json::releaseStringValue ( char *  value  )  [inline, static]

Free the string duplicated by duplicateStringValue().

Definition at line 70 of file json_value.cpp.

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

Here is the caller graph for this function:

static void Json::uintToString ( LargestUInt  value,
char *&  current 
) [inline, static]

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.

Definition at line 79 of file json_tool.h.

Referenced by valueToString().

Here is the caller graph for this function:

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

Definition at line 120 of file json_writer.cpp.

References containsControlCharacter(), and isControlCharacter().

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

Definition at line 115 of file json_writer.cpp.

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

Definition at line 75 of file json_writer.cpp.

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

Definition at line 50 of file json_writer.cpp.

References uintToString().

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

Definition at line 35 of file json_writer.cpp.

References uintToString().

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

Definition at line 67 of file json_writer.cpp.

References valueToString().

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

Definition at line 61 of file json_writer.cpp.

Referenced by valueToString().

Here is the caller graph for this function:


Variable Documentation

struct Json::DummyArrayAllocatorInitializer Json::dummyArrayAllocatorInitializer [static]

struct Json::DummyMapAllocatorInitializer Json::dummyMapAllocatorInitializer [static]

const unsigned int Json::unknown = (unsigned)-1 [static]

Unknown size marker.

Definition at line 43 of file json_value.cpp.

Referenced by duplicateStringValue().


SourceForge Logo hosts this site. Send comments to:
Json-cpp Developers