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.

Reply via email to