diff options
author | malkovskynv <malkovskynv@yandex-team.com> | 2023-08-03 13:42:05 +0300 |
---|---|---|
committer | malkovskynv <malkovskynv@yandex-team.com> | 2023-08-03 13:42:05 +0300 |
commit | 29af40f86c4159175acf78d57de7cd39e44c0dab (patch) | |
tree | 016948d29c43f651dd64d5a9f2d9cbdd4a827bfc /library/cpp/protobuf/json/proto2json_printer.cpp | |
parent | fef1ffbaef82af08b6201f41c2ed15723a4fe1cf (diff) | |
download | ydb-29af40f86c4159175acf78d57de7cd39e44c0dab.tar.gz |
MARKETRECOM-8673_json_enum_value
Diffstat (limited to 'library/cpp/protobuf/json/proto2json_printer.cpp')
-rw-r--r-- | library/cpp/protobuf/json/proto2json_printer.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/library/cpp/protobuf/json/proto2json_printer.cpp b/library/cpp/protobuf/json/proto2json_printer.cpp index 6663ac6e71..c7deb46207 100644 --- a/library/cpp/protobuf/json/proto2json_printer.cpp +++ b/library/cpp/protobuf/json/proto2json_printer.cpp @@ -4,6 +4,8 @@ #include <google/protobuf/util/time_util.h> +#include <library/cpp/protobuf/json/proto/enum_options.pb.h> + #include <util/generic/yexception.h> #include <util/string/ascii.h> #include <util/string/cast.h> @@ -145,6 +147,15 @@ namespace NProtobufJson { return; } + if (Config.UseJsonEnumValue) { + auto jsonEnumValue = value->options().GetExtension(json_enum_value); + if (!jsonEnumValue) { + ythrow yexception() << "Trying to using json enum value for field " << value->name() << " which is not set."; + } + WriteWithMaybeEmptyKey<InMapContext>(json, key, jsonEnumValue); + return; + } + switch (GetConfig().EnumMode) { case TProto2JsonConfig::EnumNumber: { WriteWithMaybeEmptyKey<InMapContext>(json, key, value->number()); |