IOSS 2.0

Classes | Typedefs | Enumerations | Functions | Variables
Json Namespace Reference

JSON (JavaScript Object Notation). More...

## Classes
class | CharReader
class | CharReaderBuilder
| Build a CharReader implementation. More...
class | FastWriter
| Outputs a Value in JSON format without formatting (not human friendly). More...
class | Features
| Configuration passed to reader and writer. This configuration object can be used to force the Reader or Writer to behave in a standard conforming way. 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 | StaticString
| Lightweight wrapper to tag static string. More...
class | StreamWriter
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
typedef int | Int
typedef unsigned int | UInt
typedef long long int | Int64
typedef unsigned long long int | UInt64
typedef Int64 | LargestInt
typedef UInt64 | LargestUInt
typedef unsigned int | ArrayIndex

## 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 }

## Functions
void | throwRuntimeError (std::string const &msg)
| used internally More...
void | throwLogicError (std::string const &msg)
| used internally More...
bool JSON_API | parseFromStream (CharReader::Factory const &, std::istream &, Value *root, std::string *errs)
JSON_API std::istream & | operator>> (std::istream &, Value &)
| Read from 'sin' into 'root'. More...
std::string JSON_API | 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. More...
std::string JSON_API | valueToString (Int value)
std::string JSON_API | valueToString (UInt value)
std::string JSON_API | valueToString (LargestInt value)
std::string JSON_API | valueToString (LargestUInt value)
std::string JSON_API | valueToString (double value)
std::string JSON_API | valueToString (bool value)
std::string JSON_API | valueToQuotedString (const char *value)
JSON_API std::ostream & | operator<< (std::ostream &, const Value &root)
| Output using the StyledStreamWriter. More...

## Variables
class JSON_API | Exception
class JSON_API | RuntimeError
class JSON_API | LogicError

## Detailed Description

JSON (JavaScript Object Notation).

## Typedef Documentation

## ◆ ArrayIndex

typedef unsigned int Json::ArrayIndex

## ◆ Int

typedef int Json::Int

## ◆ Int64

typedef long long int Json::Int64

## ◆ LargestInt

typedef Int64 Json::LargestInt

## ◆ LargestUInt

typedef UInt64 Json::LargestUInt

## ◆ UInt

typedef unsigned int Json::UInt

## ◆ UInt64

typedef unsigned long long int Json::UInt64

## Enumeration Type Documentation

## ◆ CommentPlacement

enum Json::CommentPlacement

Enumerator
commentBefore | a comment placed on the line before a value
commentAfterOnSameLine | a comment just after a value on the same line
commentAfter | a comment on the line after a value (only make sense for
numberOfCommentPlacement | root value)

## ◆ ValueType

enum Json::ValueType

Type of the value held by a Value object.

Enumerator
nullValue | 'null' value
intValue | signed integer value
uintValue | unsigned integer value
realValue | double value
stringValue | UTF-8 string value.
booleanValue | bool value
arrayValue | array value (ordered list)
objectValue | object value (collection of name/value pairs).

## Function Documentation

## ◆ operator<<()

JSON_API std::ostream& Json::operator<< | ( | std::ostream & | ,
|  | const Value & | root
| ) |  |

Output using the StyledStreamWriter.

See also
  Json::operator>>()

## ◆ operator>>()

JSON_API std::istream& Json::operator>> | ( | std::istream & | ,
|  | Value & |
| ) |  |

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:

Json::Value root;
cin >> root["dir"]["file"];
cout << root;

Result:

    {
    "dir": {
        "file": {
        // The input stream JSON would be nested here.
        }
    }
    }

Exceptions

  std::exception | on parse error.

See also
  Json::operator<<()

## ◆ parseFromStream()

bool JSON_API Json::parseFromStream | ( | CharReader::Factory const & | ,
|  | std::istream & | ,
|  | Value * | root,
|  | std::string * | errs
| ) |  |

Consume entire stream and use its begin/end. Someday we might have a real StreamReader, but for now this is convenient.

## ◆ throwLogicError()

void Json::throwLogicError | ( | std::string const & | msg | ) |

used internally

## ◆ throwRuntimeError()

void Json::throwRuntimeError | ( | std::string const & | msg | ) |

used internally

## ◆ valueToQuotedString()

std::string JSON_API Json::valueToQuotedString | ( | const char * | value | ) |

## ◆ valueToString() [1/6]

std::string JSON_API Json::valueToString | ( | Int | value | ) |

## ◆ valueToString() [2/6]

std::string JSON_API Json::valueToString | ( | UInt | value | ) |

## ◆ valueToString() [3/6]

std::string JSON_API Json::valueToString | ( | LargestInt | value | ) |

## ◆ valueToString() [4/6]

std::string JSON_API Json::valueToString | ( | LargestUInt | value | ) |

## ◆ valueToString() [5/6]

std::string JSON_API Json::valueToString | ( | double | value | ) |

## ◆ valueToString() [6/6]

std::string JSON_API Json::valueToString | ( | bool | value | ) |

## ◆ writeString()

std::string JSON_API 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.

## Variable Documentation

## ◆ Exception

class JSON_API Json::Exception

Base class for all exceptions we throw.

We use nothing but these internally. Of course, STL can throw others.

## ◆ LogicError

class JSON_API Json::LogicError

Exceptions thrown by JSON_ASSERT/JSON_FAIL macros.

These are precondition-violations (user bugs) and internal errors (our bugs).

Remarks
  derived from Json::Exception

## ◆ RuntimeError

class JSON_API Json::RuntimeError

Exceptions which the user cannot easily avoid.

E.g. out-of-memory (when we use malloc), stack-overflow, malicious input

Remarks
  derived from Json::Exception