builder.withIndentation(" "); // or whatever you like
// Then build a StreamWriter.
-// (Of course, you can write to std::ostringstream if you prefer.)
std::shared_ptr<Json::StreamWriter> writer(
- builder.newStreamWriter( &std::cout );
+ builder.newStreamWriter( &std::cout ) );
// Make a new JSON document for the configuration. Preserve original comments.
writer->write( root );
// If you like the defaults, you can insert directly into a stream.
std::cout << root;
+// Of course, you can write to `std::ostringstream` if you prefer. Or
+// use `writeString()` for convenience.
+std::string document = Json::writeString( root, builder );
+
// You can also read from a stream. This will put the contents of any JSON
// stream at a particular sub-value, if you'd like.
std::cin >> root["subtree"];
/**
Usage:
-
+\code
using namespace Json;
Value value;
StreamWriter::Builder builder;
builder.newStreamWriter(&std::cout));
writer->write(value);
std::cout.flush();
+\endcode
*/
class JSON_API StreamWriter {
protected:
std::ostream& sout_; // not owned; will not delete
public:
- /// `All`: Keep all comments.
- /// `None`: Drop all comments.
- /// Use `Most` to recover the odd behavior of previous versions.
- /// Only `All` is currently implemented.
- enum class CommentStyle {None, Most, All};
+ /// Decide whether to write comments.
+ enum class CommentStyle {
+ None, ///< Drop all comments.
+ Most, ///< Recover odd behavior of previous versions (not implemented yet).
+ All ///< Keep all comments.
+ };
/// Keep a reference, but do not take ownership of `sout`.
StreamWriter(std::ostream* sout);