JSON (JavaScript Object Notation). More...
Classes | |
| 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 | Features |
| Configuration passed to reader and writer. More... | |
| class | LogicError |
| Exceptions thrown by JSON_ASSERT/JSON_FAIL macros. 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 | RuntimeError |
| Exceptions which the user cannot easily avoid. More... | |
| class | SecureAllocator |
| class | StaticString |
| Lightweight wrapper to tag static string. More... | |
| class | StreamWriter |
| Usage: More... | |
| class | StreamWriterBuilder |
| Build a StreamWriter implementation. 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... | |
Typedefs | |
| typedef int | Int |
| typedef unsigned int | UInt |
| typedef __int64 | Int64 |
| typedef unsigned __int64 | UInt64 |
| typedef Int64 | LargestInt |
| typedef UInt64 | LargestUInt |
| template<typename T > | |
| using | Allocator = typename std::conditional< JSONCPP_USING_SECURE_MEMORY, SecureAllocator< T >, std::allocator< T > >::type |
| using | String = std::basic_string< char, std::char_traits< char >, Allocator< char > > |
| using | IStringStream = std::basic_istringstream< String::value_type, String::traits_type, String::allocator_type > |
| using | OStringStream = std::basic_ostringstream< String::value_type, String::traits_type, String::allocator_type > |
| using | IStream = std::istream |
| using | OStream = std::ostream |
| 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 | PrecisionType { significantDigits = 0, decimalPlaces } |
| Type of precision for formatting of real values. More... | |
| 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 &, IStream &, Value *root, String *errs) |
| Consume entire stream and use its begin/end. More... | |
| IStream & | operator>> (IStream &, Value &) |
| Read from 'sin' into 'root'. More... | |
| void | throwRuntimeError (String const &msg) |
| used internally More... | |
| void | throwLogicError (String const &msg) |
| used internally More... | |
| void | swap (Value &a, Value &b) |
| String | writeString (StreamWriter::Factory const &factory, Value const &root) |
| Write into stringstream, then return string, for convenience. More... | |
| class | __declspec (deprecated("Use StreamWriter instead")) Writer |
| Abstract class for writers. More... | |
| class __declspec(deprecated("Use StreamWriterBuilder instead")) FastWriter class __declspec(deprecated("Use StreamWriterBuilder instead")) StyledWriter class | __declspec (deprecated("Use StreamWriterBuilder instead")) StyledStreamWriter |
| Outputs a Value in JSON format without formatting (not human friendly). More... | |
| String | valueToString (Int value) |
| String | valueToString (UInt value) |
| String | valueToString (LargestInt value) |
| String | valueToString (LargestUInt value) |
| String | valueToString (double value, unsigned int precision=Value::defaultRealPrecision, PrecisionType precisionType=PrecisionType::significantDigits) |
| String | valueToString (bool value) |
| String | valueToQuotedString (const char *value) |
| OStream & | operator<< (OStream &, const Value &root) |
| Output using the StyledStreamWriter. More... | |
| static void | getValidReaderKeys (std::set< String > *valid_keys) |
| static char | getDecimalPoint () |
| static String | codePointToUTF8 (unsigned int cp) |
| Converts a unicode code-point to UTF-8. More... | |
| static void | uintToString (LargestUInt value, char *¤t) |
| Converts an unsigned integer to string. More... | |
| template<typename Iter > | |
| Iter | fixNumericLocale (Iter begin, Iter end) |
| Change ',' to '. More... | |
| template<typename Iter > | |
| void | fixNumericLocaleInput (Iter begin, Iter end) |
| template<typename Iter > | |
| Iter | fixZerosInTheEnd (Iter begin, Iter end) |
| Return iterator that would be the new end of the range [begin,end), if we were to delete zeros in the end of string, but not the last zero before '. More... | |
| template<typename T > | |
| static std::unique_ptr< T > | cloneUnique (const std::unique_ptr< T > &p) |
| 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. More... | |
| 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(). More... | |
| static void | releaseStringValue (char *value, unsigned) |
| 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 String | toHex16Bit (unsigned int x) |
| static String | valueToQuotedStringN (const char *value, unsigned length) |
| static void | getValidWriterKeys (std::set< String > *valid_keys) |
Variables | |
| static const double | maxUInt64AsDouble = 18446744073709551615.0 |
| static const char | hex2 [] |
JSON (JavaScript Object Notation).
| using Json::Allocator = typedef typename std::conditional<JSONCPP_USING_SECURE_MEMORY, SecureAllocator<T>, std::allocator<T> >::type |
| typedef unsigned int Json::ArrayIndex |
Definition at line 29 of file forwards.h.
| typedef std::auto_ptr<CharReader> Json::CharReaderPtr |
Definition at line 56 of file json_reader.cpp.
| typedef __int64 Json::Int64 |
| using Json::IStream = typedef std::istream |
| using Json::IStringStream = typedef std::basic_istringstream<String::value_type, String::traits_type, String::allocator_type> |
| typedef Int64 Json::LargestInt |
| typedef UInt64 Json::LargestUInt |
| using Json::OStream = typedef std::ostream |
| using Json::OStringStream = typedef std::basic_ostringstream<String::value_type, String::traits_type, String::allocator_type> |
| typedef std::auto_ptr<StreamWriter> Json::StreamWriterPtr |
Definition at line 89 of file json_writer.cpp.
| using Json::String = typedef std::basic_string<char, std::char_traits<char>, Allocator<char> > |
| typedef unsigned int Json::UInt |
| typedef unsigned __int64 Json::UInt64 |
| typedef char Json::UIntToStringBuffer[uintToStringBufferSize] |
Definition at line 74 of file json_tool.h.
| anonymous enum |
| Enumerator | |
|---|---|
| uintToStringBufferSize | Constant that specify the size of the buffer that must be passed to uintToString. |
Definition at line 67 of file json_tool.h.
| enum Json::PrecisionType |
| enum Json::ValueType |
Type of the value held by a Value object.
| class Json::__declspec | ( | deprecated("Use StreamWriter instead") | ) |
Abstract class for writers.
| class __declspec (deprecated( "Use StreamWriterBuilder instead" )) FastWriter class __declspec (deprecated( "Use StreamWriterBuilder instead" )) StyledWriter class Json::__declspec | ( | deprecated("Use StreamWriterBuilder instead") | ) |
Outputs a Value in JSON format without formatting (not human friendly).
The JSON document is written in a single line. It is not intended for 'human' consumption, but may be useful to support feature such as RPC where bandwidth is limited.
Writes a Value in JSON format in a human friendly way.
The rules for line break and indent are as follow:
If the Value have comments then they are outputed according to their CommentPlacement.
Writes a Value in JSON format in a human friendly way, to a stream rather than to a string.
The rules for line break and indent are as follow:
If the Value have comments then they are outputed according to their CommentPlacement.
| indentation | Each level will be indented by this amount extra. |
Serialize a Value in JSON format.
| out | Stream to write to. (Can be ostringstream, e.g.) |
| root | Value to serialize. |
|
static |
Definition at line 58 of file json_value.cpp.
|
inlinestatic |
Converts a unicode code-point to UTF-8.
Definition at line 39 of file json_tool.h.
|
inlinestatic |
Definition at line 178 of file json_value.cpp.
Referenced by Json::Value::asCString(), Json::Value::asString(), Json::Value::getString(), Json::Value::operator<(), and Json::Value::operator==().
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 158 of file json_value.cpp.
References JSON_ASSERT_MESSAGE, Json::Value::maxInt, and throwRuntimeError().
Referenced by Json::Value::Value().
Here is the caller graph for this function:
|
inlinestatic |
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 140 of file json_value.cpp.
References Json::Value::maxInt, and throwRuntimeError().
| Iter Json::fixNumericLocale | ( | Iter | begin, |
| Iter | end | ||
| ) |
Change ',' to '.
' everywhere in buffer.
We had a sophisticated way, but it did not work in WinCE.
Definition at line 94 of file json_tool.h.
| void Json::fixNumericLocaleInput | ( | Iter | begin, |
| Iter | end | ||
| ) |
Definition at line 103 of file json_tool.h.
References getDecimalPoint().
| Iter Json::fixZerosInTheEnd | ( | Iter | begin, |
| Iter | end | ||
| ) |
Return iterator that would be the new end of the range [begin,end), if we were to delete zeros in the end of string, but not the last zero before '.
'.
Definition at line 119 of file json_tool.h.
|
inlinestatic |
Definition at line 29 of file json_tool.h.
Referenced by fixNumericLocaleInput().
Here is the caller graph for this function:
|
static |
Definition at line 1927 of file json_reader.cpp.
Referenced by Json::CharReaderBuilder::validate().
Here is the caller graph for this function:
|
static |
Definition at line 1196 of file json_writer.cpp.
Referenced by Json::StreamWriterBuilder::validate().
Here is the caller graph for this function:
|
inlinestatic |
Definition at line 111 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 |
Definition at line 179 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
Here is the caller graph for this function:
|
static |
Definition at line 1318 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:| bool Json::operator!= | ( | const SecureAllocator< T > & | , |
| const SecureAllocator< U > & | |||
| ) |
Definition at line 81 of file allocator.h.
Output using the StyledStreamWriter.
Definition at line 1246 of file json_writer.cpp.
References Json::StreamWriterBuilder::newStreamWriter().
| bool Json::operator== | ( | const SecureAllocator< T > & | , |
| const SecureAllocator< U > & | |||
| ) |
Definition at line 76 of file allocator.h.
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:
Result:
{
"dir": {
"file": {
// The input stream JSON would be nested here.
}
}
}
| std::exception | on parse error. |
Definition at line 2007 of file json_reader.cpp.
References parseFromStream(), and throwRuntimeError().
| bool Json::parseFromStream | ( | CharReader::Factory const & | fact, |
| IStream & | sin, | ||
| Value * | root, | ||
| 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 1993 of file json_reader.cpp.
References Json::CharReader::Factory::newCharReader().
Referenced by operator>>().
Here is the caller graph for this function:
|
inlinestatic |
Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
Definition at line 209 of file json_value.cpp.
|
inlinestatic |
Definition at line 210 of file json_value.cpp.
Definition at line 897 of file value.h.
References Json::Value::swap().
Referenced by Json::Value::swap(), Json::Value::swapPayload(), and Json::Value::Value().
Here is the caller graph for this function:| void Json::throwLogicError | ( | String const & | msg | ) |
used internally
Definition at line 238 of file json_value.cpp.
| void Json::throwRuntimeError | ( | String const & | msg | ) |
used internally
Definition at line 235 of file json_value.cpp.
Referenced by duplicateAndPrefixStringValue(), duplicateStringValue(), Json::StreamWriterBuilder::newStreamWriter(), operator>>(), and Json::ValueIterator::ValueIterator().
Here is the caller graph for this function:
|
static |
Definition at line 259 of file json_writer.cpp.
References hex2.
Referenced by valueToQuotedStringN().
Here is the caller graph for this function:
|
inlinestatic |
Converts an unsigned integer to string.
| value | Unsigned integer to convert to string |
| current | Input/Output string buffer. Must have at least uintToStringBufferSize chars free. |
Definition at line 81 of file json_tool.h.
Referenced by valueToString().
Here is the caller graph for this function:
|
static |
Definition at line 191 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
Here is the caller graph for this function:| String Json::valueToQuotedString | ( | const char * | value | ) |
Definition at line 339 of file json_writer.cpp.
References valueToQuotedStringN().
|
static |
Definition at line 270 of file json_writer.cpp.
References isAnyCharRequiredQuoting(), toHex16Bit(), and utf8ToCodepoint().
Referenced by valueToQuotedString().
Here is the caller graph for this function:| String Json::valueToString | ( | bool | value | ) |
Definition at line 177 of file json_writer.cpp.
| String Json::valueToString | ( | double | value, |
| unsigned int | precision = Value::defaultRealPrecision, |
||
| PrecisionType | precisionType = PrecisionType::significantDigits |
||
| ) |
Definition at line 171 of file json_writer.cpp.
References valueToString().
Definition at line 118 of file json_writer.cpp.
Referenced by Json::Value::asString(), and valueToString().
Here is the caller graph for this function:| String Json::valueToString | ( | LargestInt | value | ) |
Definition at line 92 of file json_writer.cpp.
References Json::Value::maxLargestInt, Json::Value::minLargestInt, and uintToString().
| String Json::valueToString | ( | LargestUInt | value | ) |
Definition at line 108 of file json_writer.cpp.
References uintToString().
Definition at line 120 of file json_writer.cpp.
References valueToString().
| 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 1239 of file json_writer.cpp.
References Json::StreamWriter::Factory::newStreamWriter().
Referenced by Json::Value::toStyledString().
Here is the caller graph for this function:
|
static |
Definition at line 242 of file json_writer.cpp.
Referenced by toHex16Bit().
|
static |
Definition at line 101 of file json_value.cpp.
Referenced by Json::Value::isIntegral(), and Json::Value::isUInt64().
1.8.16