JsonCpp project page | JsonCpp home page

Classes | Public Types | Public Member Functions | List of all members
Json::Reader Class Reference

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

`#include <json/reader.h>`

Collaboration diagram for Json::Reader:

## Classes
struct | StructuredError
| An error tagged with where in the JSON text it was encountered. More...

## Public Types
typedef char | Char
typedef const Char * | Location

## 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 (std::istream &is, Value &root, bool collectComments=true)
| Parse from input stream. More...
std::string | getFormatedErrorMessages () const
| Returns a user friendly string that list errors in the parsed document. More...
std::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 erros encounted while parsing. More...
bool | pushError (const Value &value, const std::string &message)
| Add a semantic error message. More...
bool | pushError (const Value &value, const std::string &message, const Value &extra)
| Add a semantic error message with extra context. More...
bool | good () const
| Return whether there are any errors. More...

## Detailed Description

Unserialize a JSON document into a Value.

Deprecated:
  Use CharReader and CharReaderBuilder.

Definition at line 35 of file reader.h.

## Member Typedef Documentation

## ◆ Char

typedef char Json::Reader::Char

Definition at line 37 of file reader.h.

## ◆ Location

typedef const Char* Json::Reader::Location

Definition at line 38 of file reader.h.

## Constructor & Destructor Documentation

## ◆ Reader() [1/2]

Json::Reader::Reader | ( |  | ) |

Constructs a Reader allowing all features for parsing.

Definition at line 94 of file json_reader.cpp.

## ◆ Reader() [2/2]

Json::Reader::Reader | ( | const Features & | features | ) |

Constructs a Reader allowing the specified feature set for parsing.

Definition at line 99 of file json_reader.cpp.

## Member Function Documentation

## ◆ getFormatedErrorMessages()

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.

Deprecated:
  Use getFormattedErrorMessages() instead (typo fix).

Definition at line 822 of file json_reader.cpp.

References getFormattedErrorMessages().

## ◆ getFormattedErrorMessages()

std::string Json::Reader::getFormattedErrorMessages | ( |  | ) | 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 826 of file json_reader.cpp.

References JSONCPP_STRING.

Referenced by getFormatedErrorMessages(), and good().

Here is the caller graph for this function:

## ◆ getStructuredErrors()

std::vector< Reader::StructuredError > Json::Reader::getStructuredErrors | ( |  | ) | const

Returns a vector of structured erros encounted while parsing.

Returns
  A (possibly empty) vector of StructuredError objects. Currently only one error can be returned, but the caller should tolerate multiple errors. This can occur if the parser recovers from a non-fatal parse error and then encounters additional errors.

Definition at line 842 of file json_reader.cpp.

References Json::Reader::StructuredError::message, Json::Reader::StructuredError::offset_limit, and Json::Reader::StructuredError::offset_start.

Referenced by good().

Here is the caller graph for this function:

## ◆ good()

bool Json::Reader::good | ( |  | ) | const

Return whether there are any errors.

Returns
  `true` if there are no errors to report `false` if errors have occurred.

Definition at line 892 of file json_reader.cpp.

References Json::arrayValue, Json::Value::asString(), Json::codePointToUTF8(), Json::commentAfter, Json::commentAfterOnSameLine, Json::commentBefore, Json::fixNumericLocaleInput(), getFormattedErrorMessages(), Json::Value::getOffsetLimit(), Json::Value::getOffsetStart(), getStructuredErrors(), Json::Value::isArray(), Json::Value::isObject(), JSONCPP_OVERRIDE, JSONCPP_STRING, Json::Value::maxInt, Json::Value::maxLargestUInt, Json::Value::minLargestInt, Json::objectValue, parse(), pushError(), Json::Value::setComment(), snprintf, and Json::Value::swapPayload().

## ◆ parse() [1/3]

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

Read a Value from a JSON document.

Parameters

  document | UTF-8 encoded string containing the document to read.
  root | [out] 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`.

Returns
  `true` if the document was successfully parsed, `false` if an error occurred.

Definition at line 105 of file json_reader.cpp.

Referenced by good(), and parse().

Here is the caller graph for this function:

## ◆ parse() [2/3]

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

Read a Value from a JSON document.

Parameters

  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.
  root | [out] 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`.

Returns
  `true` if the document was successfully parsed, `false` if an error occurred.

Definition at line 125 of file json_reader.cpp.

References Json::Features::allowComments_, Json::Features::allowDroppedNullPlaceholders_, Json::Features::allowNumericKeys_, Json::arrayValue, Json::Value::asCString(), Json::codePointToUTF8(), Json::commentAfter, Json::commentAfterOnSameLine, Json::commentBefore, Json::Value::isArray(), Json::Value::isObject(), JSONCPP_ISTRINGSTREAM, JSONCPP_STRING, Json::Value::maxInt, Json::Value::maxLargestInt, Json::Value::maxLargestUInt, Json::Value::minLargestInt, Json::objectValue, Json::Value::setComment(), Json::Value::setOffsetLimit(), Json::Value::setOffsetStart(), snprintf, stackLimit_g, Json::Features::strictRoot_, and Json::Value::swapPayload().

## ◆ parse() [3/3]

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 112 of file json_reader.cpp.

References JSONCPP_STRING, and parse().

## ◆ pushError() [1/2]

bool Json::Reader::pushError | ( | const Value & | value,
|  | const std::string & | message
| ) |  |

Add a semantic error message.

Parameters

  value | JSON Value location associated with the error
  message | The error message.

Returns
  `true` if the error was successfully added, `false` if the Value offset exceeds the document size.

Definition at line 857 of file json_reader.cpp.

References Json::Value::getOffsetLimit(), and Json::Value::getOffsetStart().

Referenced by good().

Here is the caller graph for this function:

## ◆ pushError() [2/2]

bool Json::Reader::pushError | ( | const Value & | value,
|  | const std::string & | message,
|  | const Value & | extra
| ) |  |

Add a semantic error message with extra context.

Parameters

  value | JSON Value location associated with the error
  message | The error message.
  extra | Additional JSON Value location to contextualize the error

Returns
  `true` if the error was successfully added, `false` if either Value offset exceeds the document size.

Definition at line 874 of file json_reader.cpp.

References Json::Value::getOffsetLimit(), and Json::Value::getOffsetStart().

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

- include/json/reader.h
- src/lib_json/json_reader.cpp