Myra Canyon  v0.0.1-768
network control
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
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. 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 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
 
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

JSON_API 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 (LargestInt value)
 
std::string JSON_API valueToString (LargestUInt value)
 
std::string JSON_API valueToString (double value)
 
std::string JSON_API valueToString (bool value)
 
std::string JSON_API valueToQuotedString (const char *value)
 
JSON_API 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. 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)
 Converts an unsigned integer to string. More...
 
static void fixNumericLocale (char *begin, char *end)
 Change ',' to '. More...
 
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 const unsigned char ALIGNAS (8) kNull[sizeof(Value)]
 
template<typename T , typename U >
static bool InRange (double d, T min, U max)
 
static char * duplicateStringValue (const char *value, unsigned int length=unknown)
 Duplicates the specified string value. More...
 
static void releaseStringValue (char *value)
 Free the string duplicated by duplicateStringValue(). More...
 
static bool IsIntegral (double d)
 
static bool containsControlCharacter (const char *str)
 

Variables

const unsigned char & kNullRef = kNull[0]
 
static const double maxUInt64AsDouble = 18446744073709551615.0
 
static const unsigned int unknown = (unsigned)-1
 Unknown size marker. More...
 

Detailed Description

JSON (JavaScript Object Notation).

Typedef Documentation

typedef unsigned int Json::ArrayIndex
typedef int Json::Int
typedef long long int Json::Int64
typedef unsigned int Json::UInt
typedef unsigned long long int Json::UInt64
typedef char Json::UIntToStringBuffer[uintToStringBufferSize]

Enumeration Type Documentation

anonymous enum
Enumerator
uintToStringBufferSize 

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

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)

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 const unsigned char Json::ALIGNAS ( )
static
static std::string Json::codePointToUTF8 ( unsigned int  cp)
inlinestatic

Converts a unicode code-point to UTF-8.

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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.

Here is the caller graph for this function:

static void Json::fixNumericLocale ( char *  begin,
char *  end 
)
inlinestatic

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

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

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 
)
inlinestatic
template<typename T , typename U >
static bool Json::InRange ( double  d,
min,
max 
)
inlinestatic

Here is the caller graph for this function:

static bool Json::isControlCharacter ( char  ch)
inlinestatic

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

Here is the caller graph for this function:

static bool Json::IsIntegral ( double  d)
static

Here is the caller graph for this function:

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

Output using the StyledStreamWriter.

See also
Json::operator>>()

Here is the call graph for this function:

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:

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

Here is the call graph for this function:

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

Free the string duplicated by duplicateStringValue().

Here is the caller graph for this function:

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.

Here is the caller graph for this function:

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

Here is the call graph for this function:

Here is the caller graph for this function:

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

Here is the caller graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Here is the call graph for this function:

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

Variable Documentation

const unsigned char& Json::kNullRef = kNull[0]
const double Json::maxUInt64AsDouble = 18446744073709551615.0
static
const unsigned int Json::unknown = (unsigned)-1
static

Unknown size marker.