Drizzled Public API Documentation

Json::Reader Class Reference

Unserialize a JSON document into a Value. More...

#include <reader.h>

Classes

class  ErrorInfo
class  Token

Public Types

typedef char Char
typedef const Char * Location

Public Member Functions

 Reader ()
 Constructs a Reader allowing all features for parsing.
 Reader (const Features &features)
 Constructs a Reader allowing the specified feature set for parsing.
bool parse (const std::string &document, Value &root, bool collectComments=true)
 Read a Value from a JSON document.
bool parse (const char *beginDoc, const char *endDoc, Value &root, bool collectComments=true)
 Read a Value from a JSON document.
bool parse (std::istream &is, Value &root, bool collectComments=true)
 Parse from input stream.
std::string getFormatedErrorMessages () const
 Returns a user friendly string that list errors in the parsed document.

Private Types

enum  TokenType {
  tokenEndOfStream = 0, tokenObjectBegin, tokenObjectEnd, tokenArrayBegin,
  tokenArrayEnd, tokenString, tokenNumber, tokenTrue,
  tokenFalse, tokenNull, tokenArraySeparator, tokenMemberSeparator,
  tokenComment, tokenError
}
typedef std::deque< ErrorInfoErrors
typedef std::stack< Value * > Nodes

Private Member Functions

bool expectToken (TokenType type, Token &token, const char *message)
bool readToken (Token &token)
void skipSpaces ()
bool match (Location 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 decodeString (Token &token)
bool decodeString (Token &token, std::string &decoded)
bool decodeDouble (Token &token)
bool decodeUnicodeCodePoint (Token &token, Location &current, Location end, unsigned int &unicode)
bool decodeUnicodeEscapeSequence (Token &token, Location &current, Location end, unsigned int &unicode)
bool addError (const std::string &message, Token &token, Location extra=0)
bool recoverFromError (TokenType skipUntilToken)
bool addErrorAndRecover (const std::string &message, Token &token, TokenType skipUntilToken)
void skipUntilSpace ()
ValuecurrentValue ()
Char getNextChar ()
void getLocationLineAndColumn (Location location, int &line, int &column) const
std::string getLocationLineAndColumn (Location location) const
void addComment (Location begin, Location end, CommentPlacement placement)
void skipCommentTokens (Token &token)

Private Attributes

Nodes nodes_
Errors errors_
std::string document_
Location begin_
Location end_
Location current_
Location lastValueEnd_
ValuelastValue_
std::string commentsBefore_
Features features_
bool collectComments_

Detailed Description

Unserialize a JSON document into a Value.

Definition at line 52 of file reader.h.

Member Function Documentation

std::string Json::Reader::getFormatedErrorMessages ( ) const

Returns a user friendly string that list errors in the parsed document.

Returns
Formatted error message with the list of errors with their location in the parsed document. An empty string is returned if no error occurred during parsing.

Definition at line 894 of file json_reader.cpp.

Referenced by Json::operator>>().

bool Json::Reader::parse ( const std::string &  document,
Value root,
bool  collectComments = true 
)

Read a Value from a JSON document.

Parameters
documentUTF-8 encoded string containing the document to read.
root[out] Contains the root value of the document if it was successfully parsed.
collectCommentstrue to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if Features::allowComments_ is false.
Returns
true if the document was successfully parsed, false if an error occurred.

Definition at line 158 of file json_reader.cpp.

Referenced by Json::operator>>(), and parse().

bool Json::Reader::parse ( const char *  beginDoc,
const char *  endDoc,
Value root,
bool  collectComments = true 
)

Read a Value from a JSON document.

Parameters
documentUTF-8 encoded string containing the document to read.
root[out] Contains the root value of the document if it was successfully parsed.
collectCommentstrue to collect comment and allow writing them back during serialization, false to discard comments. This parameter is ignored if Features::allowComments_ is false.
Returns
true if the document was successfully parsed, false if an error occurred.

Definition at line 187 of file json_reader.cpp.

References Json::Features::allowComments_, Json::commentAfter, Json::Value::setComment(), and Json::Features::strictRoot_.

bool Json::Reader::parse ( std::istream &  is,
Value root,
bool  collectComments = true 
)

Parse from input stream.

See Also
Json::operator>>(std::istream&, Json::Value&).

Definition at line 170 of file json_reader.cpp.

References parse().


The documentation for this class was generated from the following files: