Drizzled Public API Documentation

Json::StyledWriter Class Reference

Writes a Value in JSON format in a human friendly way. More...

#include <writer.h>

Inheritance diagram for Json::StyledWriter:
Json::Writer

Public Member Functions

virtual std::string write (const Value &root)
 Serialize a Value in JSON format. More...
 

Private Types

typedef std::vector< std::string > ChildValues
 

Private Member Functions

void writeValue (const Value &value)
 
void writeArrayValue (const Value &value)
 
bool isMultineArray (const Value &value)
 
void pushValue (const std::string &value)
 
void writeIndent ()
 
void writeWithIndent (const std::string &value)
 
void indent ()
 
void unindent ()
 
void writeCommentBeforeValue (const Value &root)
 
void writeCommentAfterValueOnSameLine (const Value &root)
 
bool hasCommentForValue (const Value &value)
 

Static Private Member Functions

static std::string normalizeEOL (const std::string &text)
 

Private Attributes

ChildValues childValues_
 
std::string document_
 
std::string indentString_
 
int rightMargin_
 
int indentSize_
 
bool addChildValues_
 

Detailed Description

Writes a Value in JSON format in a human friendly way.

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.

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

Definition at line 100 of file writer.h.

Member Function Documentation

std::string Json::StyledWriter::write ( const Value root)
virtual

Serialize a Value in JSON format.

Parameters
rootValue to serialize.
Returns
String containing the JSON document that represents the root value.

Implements Json::Writer.

Definition at line 310 of file json_writer.cpp.

Referenced by drizzle_plugin::json_server::SQLGenerator::generatePostSql(), and drizzle_plugin::json_server::HttpHandler::sendResponse().


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