Thanks for the answer. Somehow I missed the Protocol Buffers Well-Known 
Types page in the docs / protobuf website.

I still have issue creating an instance of the message. For example if I 
have a plain object:

{
  firstName: 'Bob'
  lastName: 'Smith',
  email: '[email protected]',
  metadata: {
    foo: 'bar',
    active: true
  }
}

And I try to create an instance of the message (to be sent via grpc) I get 
error

.google.protobuf.Struct#foo is not a field: undefined

Same thing if I use google.protobuf.Value. I've tried numerous ways of 
doing this but can't seem to accomplish it. I must be missing something. 
Anyone have any ideas.

Thanks for the help again.

Bojan

On Tuesday, 15 November 2016 15:57:20 UTC-4, Tim Kientzle wrote:
>
>
> On Nov 15, 2016, at 9:15 AM, Bojan D <[email protected] <javascript:>> 
> wrote:
>
> Newbie question... If I have the following sample "User" JSON data:
>
> {
>   firstName: 'Bob'
>   lastName: 'Smith',
>   email: '[email protected] <javascript:>',
>   metadata: {
>     // a plain JS object that 
>     // - will always exist and be at least an empty {} object
>     // - could potentially contain any number of properties and values, 
> depending on specific "user"
>   }
> }
>
> How do I represent the metadata property within proto definition?
>
>
>
> You want to use the well-known types “Struct” or “Value”, which are 
> specifically designed to support ad hoc JSON parsing.  “Struct” supports 
> parsing any valid JSON object structure, “Value” can parse any valid JSON:
>
> message User {
>   string email = 1;
>   string firstName = 2;
>   string lastName = 3;
>   google.protobuf.Struct metadata = 4;
> }
>
>
> Tim
>
>

-- 
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