\code
// For convenience, use `writeString()` with a specialized builder.
Json::StreamWriterBuilder wbuilder;
-wbuilder.settings_["indentation"] = "\t";
+wbuilder.settings_["indentation"] = "\t"; // simple Json::Value
std::string document = Json::writeString(wbuilder, root);
// Here, using a specialized Builder, we discard comments and
// record errors as we parse.
Json::CharReaderBuilder rbuilder;
-rbuilder.settings_["collectComments"] = false;
+rbuilder.settings_["collectComments"] = false; // simple Json::Value
std::string errs;
bool ok = Json::parseFromStream(rbuilder, std::cin, &root, &errs);
\endcode
protected:
std::ostream* sout_; // not owned; will not delete
public:
- /// Scoped enums are not available until C++11.
- struct CommentStyle {
- /// Decide whether to write comments.
- enum Enum {
- None, ///< Drop all comments.
- Most, ///< Recover odd behavior of previous versions (not implemented yet).
- All ///< Keep all comments.
- };
- };
-
StreamWriter();
virtual ~StreamWriter();
/** Write Value into document as configured in sub-class.
//////////////////////////
// BuiltStyledStreamWriter
+/// Scoped enums are not available until C++11.
+struct CommentStyle {
+ /// Decide whether to write comments.
+ enum Enum {
+ None, ///< Drop all comments.
+ Most, ///< Recover odd behavior of previous versions (not implemented yet).
+ All ///< Keep all comments.
+ };
+};
+
struct BuiltStyledStreamWriter : public StreamWriter
{
BuiltStyledStreamWriter(
std::string const& indentation,
- StreamWriter::CommentStyle::Enum cs,
+ CommentStyle::Enum cs,
std::string const& colonSymbol,
std::string const& nullSymbol,
std::string const& endingLineFeedSymbol);
};
BuiltStyledStreamWriter::BuiltStyledStreamWriter(
std::string const& indentation,
- StreamWriter::CommentStyle::Enum cs,
+ CommentStyle::Enum cs,
std::string const& colonSymbol,
std::string const& nullSymbol,
std::string const& endingLineFeedSymbol)
std::string indentation = settings_["indentation"].asString();
std::string cs_str = settings_["commentStyle"].asString();
- StreamWriter::CommentStyle::Enum cs = StreamWriter::CommentStyle::All;
+ CommentStyle::Enum cs = CommentStyle::All;
if (cs_str == "All") {
- cs = StreamWriter::CommentStyle::All;
+ cs = CommentStyle::All;
} else if (cs_str == "None") {
- cs = StreamWriter::CommentStyle::None;
+ cs = CommentStyle::None;
} else {
return NULL;
}
endingLineFeedSymbol = "";
}
return new BuiltStyledStreamWriter(
- "", StreamWriter::CommentStyle::None,
+ "", CommentStyle::None,
colonSymbol, nullSymbol, endingLineFeedSymbol);
}