|
Free Electron
|
Unserialize a JSON document into a Value. More...
#include <reader.h>
Classes | |
| struct | StructuredError |
| An error tagged with where in the JSON text it was encountered. More... | |
Public Types | |
| using | Char = char |
| using | Location = const Char * |
Public Member Functions | |
| Reader () | |
| Constructs a Reader allowing all features for parsing. More... | |
| Reader (const Features &features) | |
| Constructs a Reader allowing the specified feature set for parsing. More... | |
| bool | parse (const std::string &document, Value &root, bool collectComments=true) |
| Read a Value from a JSON document. More... | |
| bool | parse (const char *beginDoc, const char *endDoc, Value &root, bool collectComments=true) |
| Read a Value from a JSON document. More... | |
| bool | parse (IStream &is, Value &root, bool collectComments=true) |
| Parse from input stream. More... | |
| String | getFormatedErrorMessages () const |
| Returns a user friendly string that list errors in the parsed document. More... | |
| String | getFormattedErrorMessages () const |
| Returns a user friendly string that list errors in the parsed document. More... | |
| std::vector< StructuredError > | getStructuredErrors () const |
| Returns a vector of structured errors encountered while parsing. More... | |
| bool | pushError (const Value &value, const String &message) |
| Add a semantic error message. More... | |
| bool | pushError (const Value &value, const String &message, const Value &extra) |
| Add a semantic error message with extra context. More... | |
| bool | good () const |
| Return whether there are any errors. More... | |
Private Types | |
| enum | TokenType { tokenEndOfStream = 0, tokenObjectBegin, tokenObjectEnd, tokenArrayBegin, tokenArrayEnd, tokenString, tokenNumber, tokenTrue, tokenFalse, tokenNull, tokenArraySeparator, tokenMemberSeparator, tokenComment, tokenError } |
| using | Errors = std::deque< ErrorInfo > |
| using | Nodes = std::stack< Value * > |
Private Member Functions | |
| bool | readToken (Token &token) |
| void | skipSpaces () |
| bool | match (const Char *pattern, int patternLength) |
| bool | readComment () |
| bool | readCStyleComment () |
| bool | readCppStyleComment () |
| bool | readString () |
| void | readNumber () |
| bool | readValue () |
| bool | readObject (Token &token) |
| bool | readArray (Token &token) |
| bool | decodeNumber (Token &token) |
| bool | decodeNumber (Token &token, Value &decoded) |
| bool | decodeString (Token &token) |
| bool | decodeString (Token &token, String &decoded) |
| bool | decodeDouble (Token &token) |
| bool | decodeDouble (Token &token, Value &decoded) |
| bool | decodeUnicodeCodePoint (Token &token, Location ¤t, Location end, unsigned int &unicode) |
| bool | decodeUnicodeEscapeSequence (Token &token, Location ¤t, Location end, unsigned int &unicode) |
| bool | addError (const String &message, Token &token, Location extra=nullptr) |
| bool | recoverFromError (TokenType skipUntilToken) |
| bool | addErrorAndRecover (const String &message, Token &token, TokenType skipUntilToken) |
| void | skipUntilSpace () |
| Value & | currentValue () |
| Char | getNextChar () |
| void | getLocationLineAndColumn (Location location, int &line, int &column) const |
| String | getLocationLineAndColumn (Location location) const |
| void | addComment (Location begin, Location end, CommentPlacement placement) |
| void | skipCommentTokens (Token &token) |
Static Private Member Functions | |
| static bool | containsNewLine (Location begin, Location end) |
| static String | normalizeEOL (Location begin, Location end) |
Private Attributes | |
| Nodes | nodes_ |
| Errors | errors_ |
| String | document_ |
| Location | begin_ {} |
| Location | end_ {} |
| Location | current_ {} |
| Location | lastValueEnd_ {} |
| Value * | lastValue_ {} |
| String | commentsBefore_ |
| Features | features_ |
| bool | collectComments_ {} |
Unserialize a JSON document into a Value.
| Json::Reader::Reader | ( | ) |
Constructs a Reader allowing all features for parsing.
| Json::Reader::Reader | ( | const Features & | features | ) |
Constructs a Reader allowing the specified feature set for parsing.
| String Json::Reader::getFormatedErrorMessages | ( | ) | const |
Returns a user friendly string that list errors in the parsed document.
| String Json::Reader::getFormattedErrorMessages | ( | ) | const |
Returns a user friendly string that list errors in the parsed document.
| std::vector<StructuredError> Json::Reader::getStructuredErrors | ( | ) | const |
Returns a vector of structured errors encountered while parsing.
| bool Json::Reader::good | ( | ) | const |
Return whether there are any errors.
true if there are no errors to report false if errors have occurred. | bool Json::Reader::parse | ( | const std::string & | document, |
| Value & | root, | ||
| bool | collectComments = true |
||
| ) |
Read a Value from a JSON document.
| document | UTF-8 encoded string containing the document to read. | |
| [out] | root | Contains the root value of the document if it was successfully parsed. |
| collectComments | true to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if Features::allowComments_ is false. |
true if the document was successfully parsed, false if an error occurred. | bool Json::Reader::parse | ( | const char * | beginDoc, |
| const char * | endDoc, | ||
| Value & | root, | ||
| bool | collectComments = true |
||
| ) |
Read a Value from a JSON document.
| beginDoc | Pointer on the beginning of the UTF-8 encoded string of the document to read. | |
| endDoc | Pointer on the end of the UTF-8 encoded string of the document to read. Must be >= beginDoc. | |
| [out] | root | Contains the root value of the document if it was successfully parsed. |
| collectComments | true to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if Features::allowComments_ is false. |
true if the document was successfully parsed, false if an error occurred. | bool Json::Reader::parse | ( | IStream & | is, |
| Value & | root, | ||
| bool | collectComments = true |
||
| ) |
Parse from input stream.
| bool Json::Reader::pushError | ( | const Value & | value, |
| const String & | message | ||
| ) |
Add a semantic error message with extra context.
| value | JSON Value location associated with the error |
| message | The error message. |
| extra | Additional JSON Value location to contextualize the error |
true if the error was successfully added, false if either Value offset exceeds the document size.
1.8.13