6#ifndef JSON_WRITER_H_INCLUDED 
    7#define JSON_WRITER_H_INCLUDED 
    9#if !defined(JSON_IS_AMALGAMATION) 
   18#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) && defined(_MSC_VER) 
   20#pragma warning(disable : 4251) 
  169#pragma warning(disable : 4996)  
  176  void enableYAMLCompatibility();
 
  183  void dropNullPlaceholders();
 
  185  void omitEndingLineFeed();
 
  191  void writeValue(
const Value& value);
 
  194  bool yamlCompatibilityEnabled_{
false};
 
  195  bool dropNullPlaceholders_{
false};
 
  196  bool omitEndingLineFeed_{
false};
 
 
  228#pragma warning(disable : 4996)  
  243  void writeValue(
const Value& value);
 
  244  void writeArrayValue(
const Value& value);
 
  245  bool isMultilineArray(
const Value& value);
 
  246  void pushValue(
const String& value);
 
  248  void writeWithIndent(
const String& value);
 
  251  void writeCommentBeforeValue(
const Value& root);
 
  252  void writeCommentAfterValueOnSameLine(
const Value& root);
 
  253  static bool hasCommentForValue(
const Value& value);
 
  256  using ChildValues = std::vector<String>;
 
  258  ChildValues childValues_;
 
  261  unsigned int rightMargin_{74};
 
  262  unsigned int indentSize_{3};
 
  263  bool addChildValues_{
false};
 
 
  296#pragma warning(disable : 4996)  
  316  void writeValue(
const Value& value);
 
  317  void writeArrayValue(
const Value& value);
 
  318  bool isMultilineArray(
const Value& value);
 
  319  void pushValue(
const String& value);
 
  321  void writeWithIndent(
const String& value);
 
  324  void writeCommentBeforeValue(
const Value& root);
 
  325  void writeCommentAfterValueOnSameLine(
const Value& root);
 
  326  static bool hasCommentForValue(
const Value& value);
 
  329  using ChildValues = std::vector<String>;
 
  331  ChildValues childValues_;
 
  334  unsigned int rightMargin_{74};
 
  336  bool addChildValues_ : 1;
 
 
  343#if defined(JSON_HAS_INT64) 
  364#if defined(JSONCPP_DISABLE_DLL_INTERFACE_WARNING) 
Outputs a Value in JSON format without formatting (not human friendly).
~FastWriter() override=default
A simple abstract factory.
virtual StreamWriter * newStreamWriter() const =0
Allocate a CharReader via operator new().
Build a StreamWriter implementation.
Json::Value settings_
Configuration of this builder.
~StreamWriterBuilder() override
virtual int write(Value const &root, OStream *sout)=0
Write Value into document as configured in sub-class.
Writes a Value in JSON format in a human friendly way, to a stream rather than to a string.
~StyledStreamWriter()=default
Writes a Value in JSON format in a human friendly way.
~StyledWriter() override=default
static constexpr UInt defaultRealPrecision
Default precision for real value for string representation.
Abstract class for writers.
virtual String write(const Value &root)=0
#define JSON_API
If defined, indicates that the source file is amalgamated to prevent private header inclusion.
JSON (JavaScript Object Notation).
String writeString(StreamWriter::Factory const &factory, Value const &root)
Write into stringstream, then return string, for convenience.
String valueToQuotedString(const char *value)
String valueToString(Int value)
OStream & operator<<(OStream &, const Value &root)
Output using the StyledStreamWriter.
std::basic_string< char, std::char_traits< char >, Allocator< char > > String
@ significantDigits
we set max number of significant digits in string