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 | FastWriter | 
| Outputs a Value in JSON format without formatting (not human friendly).  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 | 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 | |
| using | Int = int | 
| using | UInt = unsigned int | 
| using | Int64 = __int64 | 
| using | UInt64 = unsigned __int64 | 
| using | LargestInt = Int64 | 
| using | LargestUInt = UInt64 | 
| template<typename T > | |
| using | Allocator | 
| using | String = std::basic_string<char, std::char_traits<char>, Allocator<char>> | 
| using | IStringStream | 
| using | OStringStream | 
| using | IStream = std::istream | 
| using | OStream = std::ostream | 
| using | ArrayIndex = unsigned int | 
| using | CharReaderPtr = std::auto_ptr<CharReader> | 
| using | UIntToStringBuffer = char[uintToStringBufferSize] | 
| using | StreamWriterPtr = std::auto_ptr<StreamWriter> | 
| 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. | |
| IStream & | operator>> (IStream &, Value &) | 
| Read from 'sin' into 'root'. | |
| __declspec (noreturn) void throwRuntimeError(String const &msg) | |
| used internally | |
| void | swap (Value &a, Value &b) | 
| String | writeString (StreamWriter::Factory const &factory, Value const &root) | 
| Write into stringstream, then return string, for convenience. | |
| 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) | 
| String | valueToQuotedString (const char *value, size_t length) | 
| OStream & | operator<< (OStream &, const Value &root) | 
| Output using the StyledStreamWriter. | |
| static char | getDecimalPoint () | 
| static String | codePointToUTF8 (unsigned int cp) | 
| Converts a unicode code-point to UTF-8. | |
| static void | uintToString (LargestUInt value, char *¤t) | 
| Converts an unsigned integer to string. | |
| template<typename Iter > | |
| Iter | fixNumericLocale (Iter begin, Iter end) | 
| Change ',' to '. | |
| template<typename Iter > | |
| void | fixNumericLocaleInput (Iter begin, Iter end) | 
| template<typename Iter > | |
| Iter | fixZerosInTheEnd (Iter begin, Iter end, unsigned int precision) | 
| 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 '. | |
| 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. | |
| 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) | 
| static bool | IsIntegral (double d) | 
| static bool | doesAnyCharRequireEscaping (char const *s, size_t n) | 
| static unsigned int | utf8ToCodepoint (const char *&s, const char *e) | 
| static String | toHex16Bit (unsigned int x) | 
| static void | appendRaw (String &result, unsigned ch) | 
| static void | appendHex (String &result, unsigned ch) | 
| static String | valueToQuotedStringN (const char *value, size_t length, bool emitUTF8=false) | 
| Variables | |
| static const char | hex2 [] | 
JSON (JavaScript Object Notation).
| using Json::Allocator | 
| using Json::ArrayIndex = unsigned int | 
Definition at line 32 of file forwards.h.
| using Json::CharReaderPtr = std::auto_ptr<CharReader> | 
Definition at line 59 of file json_reader.cpp.
| using Json::Int64 = __int64 | 
| using Json::IStream = std::istream | 
| using Json::IStringStream | 
| using Json::LargestInt = Int64 | 
| using Json::LargestUInt = UInt64 | 
| using Json::OStream = std::ostream | 
| using Json::OStringStream | 
| using Json::StreamWriterPtr = std::auto_ptr<StreamWriter> | 
Definition at line 91 of file json_writer.cpp.
| using Json::String = std::basic_string<char, std::char_traits<char>, Allocator<char>> | 
| using Json::UInt = unsigned int | 
| using Json::UInt64 = unsigned __int64 | 
| using Json::UIntToStringBuffer = char[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.
| Json::__declspec | ( | noreturn | ) | const & | 
used internally
Definition at line 208 of file json_value.cpp.
| 
 | static | 
Definition at line 272 of file json_writer.cpp.
References toHex16Bit().
Referenced by valueToQuotedStringN().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 268 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 52 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 153 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:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 181 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlinestatic | 
Definition at line 133 of file json_value.cpp.
References JSON_ASSERT_MESSAGE, and Json::Value::maxInt.
Referenced by Json::Value::Value(), Json::Value::Value(), and Json::Value::Value().
 Here is the caller graph for this function:
 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 115 of file json_value.cpp.
References Json::Value::maxInt.
| 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, | ||
| unsigned int | precision ) | 
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 120 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:
 Here is the caller graph for this function:| 
 | inlinestatic | 
Definition at line 87 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:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 1252 of file json_value.cpp.
References IsIntegral().
Referenced by Json::Value::isInt(), Json::Value::isInt64(), IsIntegral(), Json::Value::isIntegral(), Json::Value::isUInt(), and Json::Value::isUInt64().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| bool Json::operator!= | ( | const SecureAllocator< T > & | , | 
| const SecureAllocator< U > & | ) | 
Definition at line 83 of file allocator.h.
Referenced by Json::Value::Value().
 Here is the caller graph for this function:
 Here is the caller graph for this function:Output using the StyledStreamWriter.
Definition at line 1257 of file json_writer.cpp.
References Json::StreamWriterBuilder::newStreamWriter().
| bool Json::operator== | ( | const SecureAllocator< T > & | , | 
| const SecureAllocator< U > & | ) | 
Definition at line 78 of file allocator.h.
Referenced by Json::Value::Value().
 Here is the caller graph for this function:
 Here is the caller graph for this function: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 2006 of file json_reader.cpp.
References parseFromStream().
| 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 1994 of file json_reader.cpp.
References Json::CharReader::Factory::newCharReader().
Referenced by operator>>().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | inlinestatic | 
Free the string duplicated by duplicateStringValue()/duplicateAndPrefixStringValue().
Definition at line 182 of file json_value.cpp.
| 
 | inlinestatic | 
Definition at line 183 of file json_value.cpp.
Definition at line 949 of file value.h.
References swap(), and Json::Value::swap().
Referenced by swap(), Json::Value::Value(), and Json::Value::Value().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 257 of file json_writer.cpp.
References hex2.
Referenced by appendHex().
 Here is the caller graph for this function:
 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(), and valueToString().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 189 of file json_writer.cpp.
Referenced by valueToQuotedStringN().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| String Json::valueToQuotedString | ( | const char * | value | ) | 
Definition at line 353 of file json_writer.cpp.
References valueToQuotedStringN().
| String Json::valueToQuotedString | ( | const char * | value, | 
| size_t | length ) | 
Definition at line 357 of file json_writer.cpp.
References valueToQuotedStringN().
| 
 | static | 
Definition at line 276 of file json_writer.cpp.
References appendHex(), appendRaw(), doesAnyCharRequireEscaping(), and utf8ToCodepoint().
Referenced by valueToQuotedString(), and valueToQuotedString().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| String Json::valueToString | ( | bool | value | ) | 
Definition at line 179 of file json_writer.cpp.
| String Json::valueToString | ( | double | value, | 
| unsigned int | precision = Value::defaultRealPrecision, | ||
| PrecisionType | precisionType = PrecisionType::significantDigits ) | 
Definition at line 174 of file json_writer.cpp.
References valueToString().
Definition at line 120 of file json_writer.cpp.
References valueToString().
Referenced by Json::Value::asString(), valueToString(), valueToString(), and valueToString().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| String Json::valueToString | ( | LargestInt | value | ) | 
Definition at line 94 of file json_writer.cpp.
References Json::Value::maxLargestInt, Json::Value::minLargestInt, and uintToString().
| String Json::valueToString | ( | LargestUInt | value | ) | 
Definition at line 110 of file json_writer.cpp.
References uintToString().
Definition at line 122 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 1250 of file json_writer.cpp.
References Json::StreamWriter::Factory::newStreamWriter().
Referenced by Json::Value::toStyledString().
 Here is the caller graph for this function:
 Here is the caller graph for this function:| 
 | static | 
Definition at line 240 of file json_writer.cpp.
Referenced by toHex16Bit().
 1.12.0
 1.12.0