JsonCpp project page | JsonCpp home page |
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 | 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< CharReader > | CharReaderPtr |
typedef char | UIntToStringBuffer [uintToStringBufferSize] |
typedef std::auto_ptr < StreamWriter > | StreamWriterPtr |
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 | |
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'. | |
void | throwRuntimeError (std::string const &msg) |
used internally | |
void | throwLogicError (std::string const &msg) |
used internally | |
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 bool | containsNewLine (Reader::Location begin, Reader::Location end) |
static std::string | normalizeEOL (Reader::Location begin, Reader::Location end) |
static void | getValidReaderKeys (std::set< std::string > *valid_keys) |
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 [1,31]). | |
static void | uintToString (LargestUInt value, char *¤t) |
Converts an unsigned integer to string. | |
static void | fixNumericLocale (char *begin, char *end) |
Change ',' to '. | |
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 | releaseStringValue (char *value) |
Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue(). | |
static bool | IsIntegral (double d) |
static bool | containsControlCharacter (const char *str) |
static bool | containsControlCharacter0 (const char *str, unsigned len) |
static char const * | strnpbrk (char const *s, char const *accept, size_t n) |
static std::string | valueToQuotedStringN (const char *value, unsigned length) |
static void | getValidWriterKeys (std::set< std::string > *valid_keys) |
Variables | |
static const unsigned char | kNull [sizeof(Value)] = { 0 } |
const unsigned char & | kNullRef = kNull[0] |
static const double | maxUInt64AsDouble = 18446744073709551615.0 |
JSON (JavaScript Object Notation).
typedef unsigned int Json::ArrayIndex |
Definition at line 23 of file forwards.h.
typedef std::auto_ptr<CharReader> Json::CharReaderPtr |
Definition at line 35 of file json_reader.cpp.
typedef __int64 Json::Int64 |
typedef Int64 Json::LargestInt |
typedef UInt64 Json::LargestUInt |
typedef std::auto_ptr<StreamWriter> Json::StreamWriterPtr |
Definition at line 51 of file json_writer.cpp.
typedef unsigned int Json::UInt |
typedef unsigned __int64 Json::UInt64 |
typedef char Json::UIntToStringBuffer[uintToStringBufferSize] |
Definition at line 56 of file json_tool.h.
anonymous enum |
uintToStringBufferSize |
Constant that specify the size of the buffer that must be passed to uintToString. |
Definition at line 49 of file json_tool.h.
enum Json::ValueType |
Type of the value held by a Value object.
static std::string Json::codePointToUTF8 | ( | unsigned int | cp | ) | [inline, static] |
Converts a unicode code-point to UTF-8.
Definition at line 18 of file json_tool.h.
static bool Json::containsControlCharacter | ( | const char * | str | ) | [static] |
Definition at line 53 of file json_writer.cpp.
References isControlCharacter().
Referenced by valueToQuotedString().
static bool Json::containsControlCharacter0 | ( | const char * | str, | |
unsigned | len | |||
) | [static] |
Definition at line 61 of file json_writer.cpp.
References isControlCharacter().
Referenced by valueToQuotedStringN().
static bool Json::containsNewLine | ( | Reader::Location | begin, | |
Reader::Location | end | |||
) | [static] |
Definition at line 55 of file json_reader.cpp.
static void Json::decodePrefixedString | ( | bool | isPrefixed, | |
char const * | prefixed, | |||
unsigned * | length, | |||
char const ** | value | |||
) | [inline, static] |
Definition at line 124 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().
static char* Json::duplicateAndPrefixStringValue | ( | const char * | value, | |
unsigned int | length | |||
) | [inline, static] |
Definition at line 103 of file json_value.cpp.
References JSON_ASSERT_MESSAGE, Json::Value::maxInt, and throwRuntimeError().
Referenced by Json::Value::Value().
static char* Json::duplicateStringValue | ( | const char * | value, | |
size_t | length | |||
) | [inline, static] |
Duplicates the specified string value.
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). |
Definition at line 83 of file json_value.cpp.
References Json::Value::maxInt, and throwRuntimeError().
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.
Definition at line 76 of file json_tool.h.
Referenced by valueToString().
static void Json::getValidReaderKeys | ( | std::set< std::string > * | valid_keys | ) | [static] |
Definition at line 1712 of file json_reader.cpp.
Referenced by Json::CharReaderBuilder::validate().
static void Json::getValidWriterKeys | ( | std::set< std::string > * | valid_keys | ) | [static] |
Definition at line 1114 of file json_writer.cpp.
Referenced by Json::StreamWriterBuilder::validate().
static bool Json::InRange | ( | double | d, | |
T | min, | |||
U | max | |||
) | [inline, static] |
Definition at line 58 of file json_value.cpp.
Referenced by Json::Value::asInt(), Json::Value::asInt64(), Json::Value::asUInt(), Json::Value::asUInt64(), and Json::Value::isConvertibleTo().
static bool Json::isControlCharacter | ( | char | ch | ) | [inline, static] |
Returns true if ch is a control character (in range [1,31]).
Definition at line 47 of file json_tool.h.
Referenced by containsControlCharacter(), containsControlCharacter0(), valueToQuotedString(), and valueToQuotedStringN().
static bool Json::IsIntegral | ( | double | d | ) | [static] |
Definition at line 1193 of file json_value.cpp.
Referenced by Json::Value::isInt(), Json::Value::isInt64(), Json::Value::isUInt(), and Json::Value::isUInt64().
static std::string Json::normalizeEOL | ( | Reader::Location | begin, | |
Reader::Location | end | |||
) | [static] |
Definition at line 325 of file json_reader.cpp.
std::ostream & Json::operator<< | ( | std::ostream & | sout, | |
const Value & | root | |||
) |
Output using the StyledStreamWriter.
Definition at line 1161 of file json_writer.cpp.
References Json::StreamWriterBuilder::newStreamWriter().
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. } } }
std::exception | on parse error. |
Definition at line 1792 of file json_reader.cpp.
References parseFromStream(), and throwRuntimeError().
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 1778 of file json_reader.cpp.
References Json::CharReader::Factory::newCharReader().
Referenced by operator>>().
static void Json::releaseStringValue | ( | char * | value | ) | [inline, static] |
Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
Definition at line 138 of file json_value.cpp.
Referenced by Json::Value::~Value().
static char const* Json::strnpbrk | ( | char const * | s, | |
char const * | accept, | |||
size_t | n | |||
) | [static] |
Definition at line 206 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
void Json::throwLogicError | ( | std::string const & | msg | ) |
used internally
Definition at line 175 of file json_value.cpp.
void Json::throwRuntimeError | ( | std::string const & | msg | ) |
used internally
Definition at line 171 of file json_value.cpp.
Referenced by duplicateAndPrefixStringValue(), duplicateStringValue(), Json::StreamWriterBuilder::newStreamWriter(), and operator>>().
static void Json::uintToString | ( | LargestUInt | value, | |
char *& | current | |||
) | [inline, static] |
Converts an unsigned integer to string.
value | Unsigned interger to convert to string | |
current | Input/Output string buffer. Must have at least uintToStringBufferSize chars free. |
Definition at line 63 of file json_tool.h.
Referenced by valueToString().
std::string Json::valueToQuotedString | ( | const char * | value | ) |
Definition at line 143 of file json_writer.cpp.
References containsControlCharacter(), and isControlCharacter().
static std::string Json::valueToQuotedStringN | ( | const char * | value, | |
unsigned | length | |||
) | [static] |
Definition at line 220 of file json_writer.cpp.
References containsControlCharacter0(), isControlCharacter(), and strnpbrk().
std::string Json::valueToString | ( | bool | value | ) |
Definition at line 141 of file json_writer.cpp.
std::string Json::valueToString | ( | double | value | ) |
Definition at line 104 of file json_writer.cpp.
References fixNumericLocale(), isfinite, and snprintf.
std::string Json::valueToString | ( | LargestUInt | value | ) |
Definition at line 84 of file json_writer.cpp.
References uintToString().
std::string Json::valueToString | ( | LargestInt | value | ) |
Definition at line 71 of file json_writer.cpp.
References uintToString().
std::string Json::valueToString | ( | UInt | value | ) |
Definition at line 98 of file json_writer.cpp.
References valueToString().
std::string Json::valueToString | ( | Int | value | ) |
Definition at line 94 of file json_writer.cpp.
Referenced by Json::Value::asString(), and valueToString().
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 1154 of file json_writer.cpp.
References Json::StreamWriter::Factory::newStreamWriter().
const unsigned char Json::kNull[sizeof(Value)] = { 0 } [static] |
Definition at line 36 of file json_value.cpp.
const unsigned char& Json::kNullRef = kNull[0] |
Definition at line 37 of file json_value.cpp.
const double Json::maxUInt64AsDouble = 18446744073709551615.0 [static] |
Definition at line 50 of file json_value.cpp.
Referenced by Json::Value::isUInt64().