Public Member Functions | Static Public Member Functions | Data Fields
Json::StreamWriterBuilder Class Reference

Build a StreamWriter implementation. More...

#include <json.h>

Inheritance diagram for Json::StreamWriterBuilder:
Json::StreamWriter::Factory

Public Member Functions

 StreamWriterBuilder ()
 
 ~StreamWriterBuilder () override
 
StreamWriternewStreamWriter () const override
 
bool validate (Json::Value *invalid) const
 
Valueoperator[] (const String &key)
 
- Public Member Functions inherited from Json::StreamWriter::Factory
virtual ~Factory ()
 

Static Public Member Functions

static void setDefaults (Json::Value *settings)
 

Data Fields

Json::Value settings_
 

Detailed Description

Build a StreamWriter implementation.

Usage:

using namespace Json;
Value value = ...;
builder["commentStyle"] = "None";
builder["indentation"] = " "; // or whatever you like
std::unique_ptr<Json::StreamWriter> writer(
builder.newStreamWriter());
writer->write(value, &std::cout);
std::cout << std::endl; // add lf and flush

Constructor & Destructor Documentation

Json::StreamWriterBuilder::StreamWriterBuilder ( )
Json::StreamWriterBuilder::~StreamWriterBuilder ( )
overridedefault

Member Function Documentation

StreamWriter * Json::StreamWriterBuilder::newStreamWriter ( ) const
overridevirtual
Exceptions
std::exceptionif something goes wrong (e.g. invalid settings)

Implements Json::StreamWriter::Factory.

Value & Json::StreamWriterBuilder::operator[] ( const String key)

A simple way to update a specific setting.

void Json::StreamWriterBuilder::setDefaults ( Json::Value settings)
static

Called by ctor, but you can use this to reset settings_.

Precondition
'settings' != NULL (but Json::null is fine)
Remarks
Defaults:

[StreamWriterBuilderDefaults]

[StreamWriterBuilderDefaults]

[StreamWriterBuilderDefaults]

[StreamWriterBuilderDefaults]

bool Json::StreamWriterBuilder::validate ( Json::Value invalid) const
Returns
true if 'settings' are legal and consistent; otherwise, indicate bad settings via 'invalid'.

Field Documentation

Json::Value Json::StreamWriterBuilder::settings_

Configuration of this builder. Available settings (case-sensitive):

  • "commentStyle": "None" or "All"
  • "indentation": "<anything>".
    • Setting this to an empty string also omits newline characters.
  • "enableYAMLCompatibility": false or true
    • slightly change the whitespace around colons
  • "dropNullPlaceholders": false or true
    • Drop the "null" string from the writer's output for nullValues. Strictly speaking, this is not valid JSON. But when the output is being fed to a browser's JavaScript, it makes for smaller output and the browser can handle the output just fine.
  • "useSpecialFloats": false or true
    • If true, outputs non-finite floating point values in the following way: NaN values as "NaN", positive infinity as "Infinity", and negative infinity as "-Infinity".
  • "precision": int
    • Number of precision digits for formatting of real values.
  • "precisionType": "significant"(default) or "decimal"
    • Type of precision for formatting of real values.

You can examine 'settings_` yourself to see the defaults. You can also write and read them just like any JSON Value.

See also
setDefaults()

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