$extrastylesheet
JsonCpp project page Classes Namespace JsonCpp home page

Classes | Typedefs | Enumerations | Functions | Variables
Json Namespace Reference

JSON (JavaScript Object Notation). More...

Classes

class  SecureAllocator
class  Features
 Configuration passed to reader and writer. More...
class  Reader
 Unserialize a JSON document into a Value. More...
class  CharReader
 Interface for reading JSON from a char array. More...
class  CharReaderBuilder
 Build a CharReader implementation. More...
class  Exception
 Base class for all exceptions we throw. More...
class  RuntimeError
 Exceptions which the user cannot easily avoid. More...
class  LogicError
 Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. 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  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  StreamWriter
 Usage: More...
class  StreamWriterBuilder
 Build a StreamWriter implementation. 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 std::auto_ptr< CharReaderCharReaderPtr
typedef char UIntToStringBuffer [uintToStringBufferSize]
typedef std::auto_ptr
< StreamWriter
StreamWriterPtr

Enumerations

enum  ValueType {
  nullValue = 0, intValue, uintValue, realValue,
  stringValue, booleanValue, arrayValue, objectValue
}
 used internally More...
enum  CommentPlacement { commentBefore = 0, commentAfterOnSameLine, commentAfter, numberOfCommentPlacement }
enum  { uintToStringBufferSize = 3 * sizeof(LargestUInt) + 1 }

Functions

template<typename T , typename U >
bool operator== (const SecureAllocator< T > &, const SecureAllocator< U > &)
template<typename T , typename U >
bool operator!= (const SecureAllocator< T > &, const SecureAllocator< U > &)
bool parseFromStream (CharReader::Factory const &, std::istream &, Value *root, std::string *errs)
 Consume entire stream and use its begin/end.
std::istream & operator>> (std::istream &, Value &)
 Read from 'sin' into 'root'.
std::string writeString (StreamWriter::Factory const &factory, Value const &root)
 Write into stringstream, then return string, for convenience.
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 void getValidReaderKeys (std::set< std::string > *valid_keys)
static char getDecimalPoint ()
static JSONCPP_STRING codePointToUTF8 (unsigned int cp)
 Converts a unicode code-point to UTF-8.
static void uintToString (LargestUInt value, char *&current)
 Converts an unsigned integer to string.
static void fixNumericLocale (char *begin, char *end)
 Change ',' to '.
static void fixNumericLocaleInput (char *begin, char *end)
template<typename T , typename U >
static bool InRange (double d, T min, U max)
static char * duplicateStringValue (const char *value, size_t length)
 Duplicates the specified string value.
static char * duplicateAndPrefixStringValue (const char *value, unsigned int length)
static void decodePrefixedString (bool isPrefixed, char const *prefixed, unsigned *length, char const **value)
static void releasePrefixedStringValue (char *value)
 Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
static void releaseStringValue (char *value, unsigned)
 __declspec (noreturn) void throwRuntimeError(std
static bool IsIntegral (double d)
static bool isAnyCharRequiredQuoting (char const *s, size_t n)
static unsigned int utf8ToCodepoint (const char *&s, const char *e)
static std::string toHex16Bit (unsigned int x)
static std::string valueToQuotedStringN (const char *value, unsigned length)
static void getValidWriterKeys (std::set< std::string > *valid_keys)

Variables

static const double maxUInt64AsDouble = 18446744073709551615.0
static const char hex2 [] = "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff"

Detailed Description

JSON (JavaScript Object Notation).


Typedef Documentation

typedef unsigned int Json::ArrayIndex

Definition at line 23 of file forwards.h.

typedef std::auto_ptr<CharReader> Json::CharReaderPtr

Definition at line 60 of file json_reader.cpp.

typedef int Json::Int

Definition at line 153 of file config.h.

typedef __int64 Json::Int64

Definition at line 162 of file config.h.

Definition at line 168 of file config.h.

Definition at line 169 of file config.h.

typedef std::auto_ptr<StreamWriter> Json::StreamWriterPtr

Definition at line 81 of file json_writer.cpp.

typedef unsigned int Json::UInt

Definition at line 154 of file config.h.

typedef unsigned __int64 Json::UInt64

Definition at line 163 of file config.h.

Definition at line 71 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

numberOfCommentPlacement 

root value)

Definition at line 104 of file value.h.

used internally

used internally 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 93 of file value.h.


Function Documentation

Json::__declspec ( noreturn  )

Definition at line 208 of file json_value.cpp.

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

Converts a unicode code-point to UTF-8.

Definition at line 36 of file json_tool.h.

References JSONCPP_STRING.

static void Json::decodePrefixedString ( bool  isPrefixed,
char const *  prefixed,
unsigned *  length,
char const **  value 
) [inline, static]

Definition at line 139 of file json_value.cpp.

Referenced by Json::Value::asCString(), Json::Value::asString(), Json::Value::getString(), Json::Value::operator<(), Json::Value::operator==(), and Json::Value::Value().

+ Here is the caller graph for this function:

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

Definition at line 118 of file json_value.cpp.

References JSON_ASSERT_MESSAGE, and Json::Value::maxInt.

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

+ Here is the caller graph for this function:

static char* Json::duplicateStringValue ( const char *  value,
size_t  length 
) [inline, static]

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 97 of file json_value.cpp.

References Json::Value::maxInt.

static void Json::fixNumericLocale ( char *  begin,
char *  end 
) [inline, static]

Change ',' to '.

' everywhere in buffer.

We had a sophisticated way, but it did not work in WinCE.

See also:
https://github.com/open-source-parsers/jsoncpp/pull/9

Definition at line 91 of file json_tool.h.

static void Json::fixNumericLocaleInput ( char *  begin,
char *  end 
) [inline, static]

Definition at line 100 of file json_tool.h.

References getDecimalPoint().

static char Json::getDecimalPoint ( ) [static]

Definition at line 26 of file json_tool.h.

Referenced by fixNumericLocaleInput().

+ Here is the caller graph for this function:

static void Json::getValidReaderKeys ( std::set< std::string > *  valid_keys) [static]

Definition at line 1966 of file json_reader.cpp.

Referenced by Json::CharReaderBuilder::validate().

+ Here is the caller graph for this function:

static void Json::getValidWriterKeys ( std::set< std::string > *  valid_keys) [static]

Definition at line 1175 of file json_writer.cpp.

Referenced by Json::StreamWriterBuilder::validate().

+ Here is the caller graph for this function:

template<typename T , typename U >
static bool Json::InRange ( double  d,
min,
max 
) [inline, static]

Definition at line 69 of file json_value.cpp.

Referenced by Json::Value::asInt(), Json::Value::asInt64(), Json::Value::asUInt(), Json::Value::asUInt64(), and Json::Value::isConvertibleTo().

+ Here is the caller graph for this function:

static bool Json::isAnyCharRequiredQuoting ( char const *  s,
size_t  n 
) [static]

Definition at line 161 of file json_writer.cpp.

Referenced by valueToQuotedStringN().

+ Here is the caller graph for this function:

static bool Json::IsIntegral ( double  d) [static]

Definition at line 1297 of file json_value.cpp.

Referenced by Json::Value::isInt(), Json::Value::isInt64(), Json::Value::isIntegral(), Json::Value::isUInt(), and Json::Value::isUInt64().

+ Here is the caller graph for this function:

template<typename T , typename U >
bool Json::operator!= ( const SecureAllocator< T > &  ,
const SecureAllocator< U > &   
)

Definition at line 90 of file allocator.h.

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

Output using the StyledStreamWriter.

See also:
Json::operator>>()

Definition at line 1226 of file json_writer.cpp.

References Json::StreamWriterBuilder::newStreamWriter().

template<typename T , typename U >
bool Json::operator== ( const SecureAllocator< T > &  ,
const SecureAllocator< U > &   
)

Definition at line 85 of file allocator.h.

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::exceptionon parse error.
See also:
Json::operator<<()

Definition at line 2050 of file json_reader.cpp.

References JSONCPP_STRING, and parseFromStream().

bool Json::parseFromStream ( CharReader::Factory const &  fact,
std::istream &  sin,
Value *  root,
std::string *  errs 
)

Consume entire stream and use its begin/end.

Someday we might have a real StreamReader, but for now this is convenient.

Definition at line 2036 of file json_reader.cpp.

References JSONCPP_OSTRINGSTREAM, JSONCPP_STRING, and Json::CharReader::Factory::newCharReader().

Referenced by operator>>().

+ Here is the caller graph for this function:

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

Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().

Definition at line 169 of file json_value.cpp.

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

+ Here is the caller graph for this function:

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

Definition at line 172 of file json_value.cpp.

static std::string Json::toHex16Bit ( unsigned int  x) [static]

Definition at line 242 of file json_writer.cpp.

References hex2, and JSONCPP_STRING.

Referenced by valueToQuotedStringN().

+ 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:
valueUnsigned integer to convert to string
currentInput/Output string buffer. Must have at least uintToStringBufferSize chars free.

Definition at line 78 of file json_tool.h.

Referenced by valueToString().

+ Here is the caller graph for this function:

static unsigned int Json::utf8ToCodepoint ( const char *&  s,
const char *  e 
) [static]

Definition at line 173 of file json_writer.cpp.

Referenced by valueToQuotedStringN().

+ Here is the caller graph for this function:

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

Definition at line 325 of file json_writer.cpp.

References valueToQuotedStringN().

static std::string Json::valueToQuotedStringN ( const char *  value,
unsigned  length 
) [static]

Definition at line 253 of file json_writer.cpp.

References isAnyCharRequiredQuoting(), JSONCPP_STRING, toHex16Bit(), and utf8ToCodepoint().

Referenced by valueToQuotedString().

+ Here is the caller graph for this function:

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

Definition at line 110 of file json_writer.cpp.

Referenced by Json::Value::asString(), and valueToString().

+ Here is the caller graph for this function:

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

Definition at line 114 of file json_writer.cpp.

References valueToString().

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

Definition at line 100 of file json_writer.cpp.

References uintToString().

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

Definition at line 157 of file json_writer.cpp.

References valueToString().

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

Definition at line 159 of file json_writer.cpp.

std::string Json::writeString ( StreamWriter::Factory const &  factory,
Value const &  root 
)

Write into stringstream, then return string, for convenience.

A StreamWriter will be created from the factory, used, and then deleted.

Definition at line 1219 of file json_writer.cpp.

References JSONCPP_OSTRINGSTREAM, and Json::StreamWriter::Factory::newStreamWriter().

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

+ Here is the caller graph for this function:


Variable Documentation

const char Json::hex2[] = "f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff" [static]

Definition at line 224 of file json_writer.cpp.

Referenced by toHex16Bit().

const double Json::maxUInt64AsDouble = 18446744073709551615.0 [static]

Definition at line 61 of file json_value.cpp.

Referenced by Json::Value::isIntegral(), and Json::Value::isUInt64().