 often problematic to use the default Go JSON
encoder/decoder as there are various fields like protobuf&rsquo;s <code>oneof</code> which requires
special handling. Additionally, any Proto fields with underscores in their
name might serialize/deserialize to different field names depending on the
encoder/decoder as the Go struct tag are <a href=https://github.com/istio/istio/issues/17600>generated
differently</a>.
It is always recommended to use protobuf primitives for
serializing/deserializing to JSON instea