JsonCpp - JSON data format manipulation library

JsonCpp project page | JsonCpp home page

Public Member Functions | List of all members
Json::StyledStreamWriter Class Reference

Writes a Value in JSON format in a human friendly way, to a stream rather than to a string. More...

`#include <json/writer.h>`

Collaboration diagram for Json::StyledStreamWriter:

## Public Member Functions
| StyledStreamWriter (std::string indentation="\)
| ~StyledStreamWriter ()
void | write (std::ostream &out, const Value &root)
| Serialize a Value in JSON format. More...

## Detailed Description

Writes a Value in JSON format in a human friendly way, to a stream rather than to a string.

The rules for line break and indent are as follow:

- Object value:
  - if empty then print {} without indent and line break
  - if not empty the print '{', line break & indent, print one value per line and then unindent and line break and print '}'.
- Array value:
  - if empty then print [] without indent and line break
  - if the array contains no object value, empty array or some other value types, and all the values fit on one lines, then print the array on a single line.
  - otherwise, it the values do not fit on one line, or the array contains object or non empty array, then print one value per line.

If the Value have comments then they are outputed according to their CommentPlacement.

Parameters

  indentation | Each level will be indented by this amount extra.

See also
  Reader, Value, Value::setComment()

Deprecated:
  Use StreamWriterBuilder.

Definition at line 274 of file writer.h.

## Constructor & Destructor Documentation

## § StyledStreamWriter()

Json::StyledStreamWriter::StyledStreamWriter | ( | std::string | indentation = `"\t"` | ) |

Definition at line 615 of file json_writer.cpp.

## § ~StyledStreamWriter()

Json::StyledStreamWriter::~StyledStreamWriter | ( |  | ) |
| inline

Definition at line 277 of file writer.h.

References JSON_API, JSONCPP_OSTREAM, JSONCPP_STRING, Json::normalizeEOL(), Json::operator<<(), Json::valueToQuotedString(), and Json::valueToString().

## Member Function Documentation

## § write()

void Json::StyledStreamWriter::write | ( | std::ostream & | out,
|  | const Value & | root
| ) |  |

Serialize a Value in JSON format.

Parameters

  out | Stream to write to. (Can be ostringstream, e.g.)
  root | Value to serialize.

Note
  There is no point in deriving from Writer, since write() should not return a value.

Definition at line 619 of file json_writer.cpp.

References Json::arrayValue, Json::Value::asBool(), Json::Value::asDouble(), Json::Value::asLargestInt(), Json::Value::asLargestUInt(), Json::booleanValue, Json::commentAfter, Json::commentAfterOnSameLine, Json::commentBefore, Json::Value::getComment(), Json::Value::getMemberNames(), Json::Value::getString(), Json::Value::hasComment(), Json::intValue, Json::Value::isArray(), Json::Value::isObject(), JSONCPP_OSTREAM, JSONCPP_OVERRIDE, JSONCPP_STRING, Json::nullValue, Json::objectValue, Json::realValue, Json::Value::size(), Json::stringValue, Json::Value::type(), Json::uintValue, Json::valueToQuotedString(), Json::valueToQuotedStringN(), and Json::valueToString().

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

- include/json/writer.h
- src/lib_json/json_writer.cpp