diff --git a/include/json/writer.h b/include/json/writer.h index 2865af81f..fa79c2cff 100644 --- a/include/json/writer.h +++ b/include/json/writer.h @@ -54,6 +54,8 @@ class JSON_API FastWriter : public Writer { */ void dropNullPlaceholders(); + void omitEndingLineFeed(); + public: // overridden from Writer virtual std::string write(const Value &root); @@ -63,6 +65,7 @@ class JSON_API FastWriter : public Writer { std::string document_; bool yamlCompatiblityEnabled_; bool dropNullPlaceholders_; + bool omitEndingLineFeed_; }; /** \brief Writes a Value in JSON format in a diff --git a/src/lib_json/json_writer.cpp b/src/lib_json/json_writer.cpp index 77ed27dce..76a3fb5dc 100644 --- a/src/lib_json/json_writer.cpp +++ b/src/lib_json/json_writer.cpp @@ -180,16 +180,19 @@ Writer::~Writer() {} // ////////////////////////////////////////////////////////////////// FastWriter::FastWriter() - : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false) {} + : yamlCompatiblityEnabled_(false), dropNullPlaceholders_(false), omitEndingLineFeed_(false) {} void FastWriter::enableYAMLCompatibility() { yamlCompatiblityEnabled_ = true; } void FastWriter::dropNullPlaceholders() { dropNullPlaceholders_ = true; } +void FastWriter::omitEndingLineFeed() { omitEndingLineFeed_ = true; } + std::string FastWriter::write(const Value &root) { document_ = ""; writeValue(root); - document_ += "\n"; + if (!omitEndingLineFeed_) + document_ += "\n"; return document_; }