Note that you can use the always_print_enums_as_ints option to work around
this problem:
https://github.com/google/protobuf/blob/master/src/google/protobuf/util/json_util.h#L73

With this option enum value will printed as integers and will be accepted
by JsonStringToMessage.

On Tue, Oct 10, 2017 at 2:18 PM, Feng Xiao <xiaof...@google.com> wrote:

>
>
> On Tue, Oct 10, 2017 at 12:29 AM, Qian Zhang <zhq527...@gmail.com> wrote:
>
>> Hi,
>>
>> I am using protobuf-3.3.0, and I found when parsing an unrecognized enum
>> value for an optional enum field, the behaviors of "ParseFromString()" and
>> "JsonStringToMessage()" are different. "ParseFromString()" will succeed and
>> the field's getter method will return the default enum value, but
>> "JsonStringToMessage" will fail with an error:
>>
>>> invalid value "xxx" for type TYPE_ENUM
>>>
>>
>> Is this a bug of protobuf-3.3.0? IMHO, "ParseFromString()" and
>> "JsonStringToMessage()" should have consistent behavior.
>>
> This is the expected behavior. The issue at core is that protobuf message
> is only able to hold unknown binary data. It's designed that way with its
> UnknownFieldSet data structure and you can not achieve the same with other
> formats.
>
>
>>
>>
>> Thanks,
>> Qian
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Protocol Buffers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to protobuf+unsubscr...@googlegroups.com.
>> To post to this group, send email to protobuf@googlegroups.com.
>> Visit this group at https://groups.google.com/group/protobuf.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Protocol Buffers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to protobuf+unsubscr...@googlegroups.com.
To post to this group, send email to protobuf@googlegroups.com.
Visit this group at https://groups.google.com/group/protobuf.
For more options, visit https://groups.google.com/d/optout.

Reply via email to