From 3cbe45a4b55952609dff0b3a9e2e7043679af93f Mon Sep 17 00:00:00 2001 From: boscosiu Date: Fri, 31 May 2019 16:01:05 -0700 Subject: [PATCH] JSON string output funtions should clear() the destination first Make the JSON util string output functions match the Message::SerializeToString() behavior. This is helpful when packing the output into string fields of reused protobuf messages. --- src/google/protobuf/util/json_util.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/google/protobuf/util/json_util.cc b/src/google/protobuf/util/json_util.cc index 52ce331005..c12c50cf53 100644 --- a/src/google/protobuf/util/json_util.cc +++ b/src/google/protobuf/util/json_util.cc @@ -115,6 +115,7 @@ util::Status BinaryToJsonString(TypeResolver* resolver, const std::string& binary_input, std::string* json_output, const JsonPrintOptions& options) { + json_output->clear(); io::ArrayInputStream input_stream(binary_input.data(), binary_input.size()); io::StringOutputStream output_stream(json_output); return BinaryToJsonStream(resolver, type_url, &input_stream, &output_stream, @@ -209,6 +210,7 @@ util::Status JsonToBinaryString(TypeResolver* resolver, StringPiece json_input, std::string* binary_output, const JsonParseOptions& options) { + binary_output->clear(); io::ArrayInputStream input_stream(json_input.data(), json_input.size()); io::StringOutputStream output_stream(binary_output); return JsonToBinaryStream(resolver, type_url, &input_stream, &output_stream,