From 5bf16105b5a90f9fa7d5d4d43452feee46603a52 Mon Sep 17 00:00:00 2001 From: Don Milham Date: Tue, 2 Sep 2014 17:09:07 -0600 Subject: [PATCH] added option to FastWriter which omits the trailing new line character --- include/json/writer.h | 3 +++ src/lib_json/json_writer.cpp | 7 +++++-- 2 files changed, 8 insertions(+), 2 deletions(-) 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_; }