Free Electron
Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | 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 <writer.h>

Public Member Functions

 StyledStreamWriter (String indentation="\)
 
void write (OStream &out, const Value &root)
 Serialize a Value in JSON format. More...
 

Private Types

using ChildValues = std::vector< String >
 

Private Member Functions

void writeValue (const Value &value)
 
void writeArrayValue (const Value &value)
 
bool isMultilineArray (const Value &value)
 
void pushValue (const String &value)
 
void writeIndent ()
 
void writeWithIndent (const String &value)
 
void indent ()
 
void unindent ()
 
void writeCommentBeforeValue (const Value &root)
 
void writeCommentAfterValueOnSameLine (const Value &root)
 

Static Private Member Functions

static bool hasCommentForValue (const Value &value)
 
static String normalizeEOL (const String &text)
 

Private Attributes

ChildValues childValues_
 
OStream * document_
 
String indentString_
 
unsigned int rightMargin_ {74}
 
String indentation_
 
bool addChildValues_: 1
 
bool indented_: 1
 

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:

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

See also
Reader, Value, Value::setComment()
Deprecated:
Use StreamWriterBuilder.

Constructor & Destructor Documentation

◆ StyledStreamWriter()

Json::StyledStreamWriter::StyledStreamWriter ( )
Parameters
indentationEach level will be indented by this amount extra.

Member Function Documentation

◆ write()

void Json::StyledStreamWriter::write ( OStream &  out,
const Value root 
)

Serialize a Value in JSON format.

Parameters
outStream to write to. (Can be ostringstream, e.g.)
rootValue to serialize.
Note
There is no point in deriving from Writer, since write() should not return a value.

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