涂 桂旺 / Mbed OS mbed-os-example-cj
Embed: (wiki syntax)

« Back to documentation index

StreamWriterBuilder Class Reference

StreamWriterBuilder Class Reference

Build a StreamWriter implementation. More...

#include <writer.h>

Inherits Json::StreamWriter::Factory.

Public Member Functions

StreamWriternewStreamWriter () const JSONCPP_OVERRIDE
bool validate (Json::Value *invalid) const
Valueoperator[] (JSONCPP_STRING key)
 A simple way to update a specific setting.

Static Public Member Functions

static void setDefaults (Json::Value *settings)
 Called by ctor, but you can use this to reset settings_.

Data Fields

Json::Value settings_
 Configuration of this builder.

Detailed Description

Build a StreamWriter implementation.

Usage:

  using namespace Json;
  Value value = ...;
  StreamWriterBuilder builder;
  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

Definition at line 89 of file writer.h.


Member Function Documentation

StreamWriter * newStreamWriter (  ) const [virtual]
Exceptions:
std::exceptionif something goes wrong (e.g. invalid settings)

Implements StreamWriter::Factory.

Definition at line 1143 of file json_writer.cpp.

Value & operator[] ( JSONCPP_STRING  key )

A simple way to update a specific setting.

Definition at line 1202 of file json_writer.cpp.

void 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: src/lib_json/json_writer.cpp StreamWriterBuilderDefaults

[StreamWriterBuilderDefaults]

[StreamWriterBuilderDefaults]

Definition at line 1207 of file json_writer.cpp.

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

Definition at line 1185 of file json_writer.cpp.


Field Documentation

Configuration of this builder.

Available settings (case-sensitive):

  • "commentStyle": "None" or "All"
  • "indentation": "<anything>"
  • "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".

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

See also:
setDefaults()

Definition at line 114 of file writer.h.