6 #ifndef CPPTL_JSON_READER_H_INCLUDED 7 #define CPPTL_JSON_READER_H_INCLUDED 9 #if !defined(JSON_IS_AMALGAMATION) 12 #endif // if !defined(JSON_IS_AMALGAMATION) 21 #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) 23 #pragma warning(disable : 4251) 24 #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) 79 parse(const std::
string& document,
Value& root,
bool collectComments = true);
99 bool parse(const
char* beginDoc,
102 bool collectComments = true);
106 bool parse(
IStream& is,
Value& root,
bool collectComments = true);
118 String getFormatedErrorMessages() const;
128 String getFormattedErrorMessages() const;
145 bool pushError(const
Value& value, const
String& message);
154 bool pushError(const
Value& value, const
String& message, const
Value& extra);
164 tokenEndOfStream = 0,
175 tokenMemberSeparator,
194 typedef std::deque<ErrorInfo> Errors;
196 bool readToken(Token& token);
198 bool match(Location pattern,
int patternLength);
200 bool readCStyleComment();
201 bool readCppStyleComment();
205 bool readObject(Token& token);
206 bool readArray(Token& token);
207 bool decodeNumber(Token& token);
208 bool decodeNumber(Token& token, Value& decoded);
209 bool decodeString(Token& token);
210 bool decodeString(Token& token,
String& decoded);
211 bool decodeDouble(Token& token);
212 bool decodeDouble(Token& token, Value& decoded);
213 bool decodeUnicodeCodePoint(Token& token,
216 unsigned int& unicode);
217 bool decodeUnicodeEscapeSequence(Token& token,
220 unsigned int& unicode);
221 bool addError(
const String& message, Token& token, Location extra =
nullptr);
222 bool recoverFromError(TokenType skipUntilToken);
223 bool addErrorAndRecover(
const String& message,
225 TokenType skipUntilToken);
226 void skipUntilSpace();
227 Value& currentValue();
230 getLocationLineAndColumn(Location location,
int& line,
int& column)
const;
231 String getLocationLineAndColumn(Location location)
const;
233 void skipCommentTokens(Token& token);
235 static bool containsNewLine(Location begin, Location end);
236 static String normalizeEOL(Location begin, Location end);
238 typedef std::stack<Value*> Nodes;
245 Location lastValueEnd_{};
249 bool collectComments_{};
275 virtual bool parse(
char const* beginDoc,
286 virtual CharReader* newCharReader()
const = 0;
413 #if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) 415 #endif // if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) 417 #endif // CPPTL_JSON_READER_H_INCLUDED #define JSONCPP_DEPRECATED(message)
#define JSON_API
If defined, indicates that the source file is amalgamated to prevent private header inclusion.
Json::Value settings_
Configuration of this builder.
An error tagged with where in the JSON text it was encountered.
IStream & operator>>(IStream &, Value &)
Read from 'sin' into 'root'.
JSON (JavaScript Object Notation).
Interface for reading JSON from a char array.
Unserialize a JSON document into a Value.
bool parseFromStream(CharReader::Factory const &, IStream &, Value *root, String *errs)
Consume entire stream and use its begin/end.
Build a CharReader implementation.
Configuration passed to reader and writer.
std::basic_string< char, std::char_traits< char >, Allocator< char > > String