Might not work for all you need, but could try:
https://protobuf.dev/reference/protobuf/google.protobuf/#struct

In prior use cases, we've also treated things like your metadata field as a
string, and then parsed the string field to extract anything relevant.

In general, I prefer to have the proto define anything in it that might be
optional, rather than [ "could be anything" ].  That allows for some nicer
handling, BUT means you also would want to be in sync with the data
creator/producer, which isn't always possible.

Good luck!

On Wed, Nov 6, 2024 at 4:52 AM 'Ayush Shah' via Protocol Buffers <
[email protected]> wrote:

> Newbie question... If I have the following sample "User" JSON data:
>
> {
>   firstName: 'Bob'
>   lastName: 'Smith',
>   email: '[email protected] <https://groups.google.com/>',
>   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? I've
> tried
>
> message User {
>   message Metadata {}
>
>   string email = 1;
>   string firstName = 2;
>   string lastName = 3;
>   Metadata metadata = 4;
> }
>
> or using `Any`
>
> message User {
>   string email = 1;
>   string firstName = 2;
>   string lastName = 3;
>   google.protobuf.Any details = 4;
> }
>
>
> but without success. Working within Node.js if relevant. Any help is much
> appreciated. Thanks!
>
> --
> 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 view this discussion visit
> https://groups.google.com/d/msgid/protobuf/276ff12e-a207-495a-9c92-adcc41b85b4an%40googlegroups.com
> <https://groups.google.com/d/msgid/protobuf/276ff12e-a207-495a-9c92-adcc41b85b4an%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
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 view this discussion visit 
https://groups.google.com/d/msgid/protobuf/CAEbFGqtofOqukzV6Nv6FVwcOkYBqWYJSqfHv9LFMyMCwbzz%3Dgg%40mail.gmail.com.

Reply via email to