diff options
Diffstat (limited to 'src/google/protobuf/util/json_util.cc')
-rw-r--r-- | src/google/protobuf/util/json_util.cc | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/src/google/protobuf/util/json_util.cc b/src/google/protobuf/util/json_util.cc index 2659320a..6d45a4f9 100644 --- a/src/google/protobuf/util/json_util.cc +++ b/src/google/protobuf/util/json_util.cc @@ -74,7 +74,7 @@ util::Status BinaryToJsonStream(TypeResolver* resolver, const string& type_url, io::ZeroCopyInputStream* binary_input, io::ZeroCopyOutputStream* json_output, - const JsonOptions& options) { + const JsonPrintOptions& options) { io::CodedInputStream in_stream(binary_input); google::protobuf::Type type; RETURN_IF_ERROR(resolver->ResolveMessageType(type_url, &type)); @@ -95,7 +95,7 @@ util::Status BinaryToJsonString(TypeResolver* resolver, const string& type_url, const string& binary_input, string* json_output, - const JsonOptions& options) { + const JsonPrintOptions& options) { 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, @@ -141,13 +141,17 @@ class StatusErrorListener : public converter::ErrorListener { util::Status JsonToBinaryStream(TypeResolver* resolver, const string& type_url, io::ZeroCopyInputStream* json_input, - io::ZeroCopyOutputStream* binary_output) { + io::ZeroCopyOutputStream* binary_output, + const JsonParseOptions& options) { google::protobuf::Type type; RETURN_IF_ERROR(resolver->ResolveMessageType(type_url, &type)); internal::ZeroCopyStreamByteSink sink(binary_output); StatusErrorListener listener; + converter::ProtoStreamObjectWriter::Options proto_writer_options; + proto_writer_options.ignore_unknown_fields = options.ignore_unknown_fields; converter::ProtoStreamObjectWriter proto_writer(resolver, type, &sink, - &listener); + &listener, + proto_writer_options); converter::JsonStreamParser parser(&proto_writer); const void* buffer; @@ -165,10 +169,12 @@ util::Status JsonToBinaryStream(TypeResolver* resolver, util::Status JsonToBinaryString(TypeResolver* resolver, const string& type_url, const string& json_input, - string* binary_output) { + string* binary_output, + const JsonParseOptions& options) { 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); + return JsonToBinaryStream( + resolver, type_url, &input_stream, &output_stream, options); } } // namespace util |