Can I please get an example of how to do this is any language with proto file?
I desperately need help with this. I am stuck for a week now on this issue. Thanks, Sid On Thursday, 21 June 2018 15:32:46 UTC-4, Josh Humphries wrote: > > Oops, I meant to point you to google.protobuf.Value: > https://github.com/google/protobuf/blob/master/src/google/protobuf/struct.proto#L63 > > It can represent *any* kind of JSON value. The Struct type is what is > used to represent JSON *objects* (there is also ListValue, for arrays, as > well as support for JS primitive types and null). > > > ---- > *Josh Humphries* > [email protected] > > On Thu, Jun 21, 2018 at 3:25 PM, Josh Humphries <[email protected]> > wrote: > >> Hi, John, >> Take a look at the well-known type google.protobuf.Struct. It is >> basically a JSON value, modeled as a proto. It's JSON representation is >> exactly what you want, too: >> >> >> https://github.com/google/protobuf/blob/master/src/google/protobuf/struct.proto#L52 >> >> >> >> ---- >> *Josh Humphries* >> [email protected] >> >> On Thu, Jun 21, 2018 at 3:20 PM, John Lilley <[email protected]> wrote: >> >>> Disclaimer: I am totally new to protobuf, engaged in an exploratory >>> POC. Please forgive dumb questions :-) >>> >>> We are looking at migrating an existing, JSON-based protocol in which >>> hand-coded C++ is written to perform serdes between objects and JSON. We >>> want to replace the hand-coding with an automated approach that can be >>> shared between C++ and Java. However, a stumbling block I see is that some >>> messages have an arbitrary field full of JSON like: >>> >>> { >>> "name":"john", >>> "address":"123 main st", >>> "attributes":{ any JSON can go here } >>> } >>> >>> While I realize that we could stringify the JSON, this breaks our >>> published API. Is there any way I can use protobuf to perform serdes >>> between message like this and some struct like: >>> >>> { >>> string name; >>> string address; >>> json attributes; >>> } >>> >>> I'm even OK if the internal data is stringified JSON: >>> >>> { >>> string name; >>> string address; >>> string attributes; >>> } >>> >>> So long as the exchanged JSON isn't stringified. In other words, this >>> is bad: >>> { >>> "name":"john", >>> "address":"123 main st", >>> "attributes":"{ \"attr1\":\"value1\", \"attr2\":[\"elem1\", >>> \"elem2\"] }" >>> } >>> >>> It needs to be exchanged like >>> { >>> "name":"john", >>> "address":"123 main st", >>> "attributes":{ "attr1":"value1", "attr2":["elem1", "elem2"] }" >>> } >>> >>> Is this possible? >>> >>> Thanks >>> john >>> >>> -- >>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
