Skip to content

Commit 1473d63

Browse files
committed
JSON stream: support streaming a key-value pair to an object
Arrays already allow the equivalent operation, json_array_streamt::push_back(const jsont &)
1 parent 0d5e588 commit 1473d63

File tree

1 file changed

+16
-0
lines changed

1 file changed

+16
-0
lines changed

src/util/json_stream.h

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,22 @@ class json_stream_objectt : public json_streamt
169169
return it->second;
170170
}
171171

172+
/// Push back a JSON element into the current object stream.
173+
/// Note the pushed key won't be available via operator[], as it has been
174+
/// output already.
175+
/// Provided for compatibility with `jsont`.
176+
/// \param json: a non-streaming JSON element
177+
void push_back(const std::string &key, const jsont &json)
178+
{
179+
PRECONDITION(open);
180+
// To ensure consistency of the output, we flush and
181+
// close the current child stream before printing the given element.
182+
output_child_stream();
183+
output_delimiter();
184+
jsont::output_key(out, key);
185+
json.output_rec(out, indent + 1);
186+
}
187+
172188
json_stream_objectt &push_back_stream_object(const std::string &key);
173189
json_stream_arrayt &push_back_stream_array(const std::string &key);
174190

0 commit comments

Comments
 (0)