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.

Reply via email to