It would be extremely surprising if Struct simply did not work for generically parsing JSON; it's in very wide usage both within and outside of Google.
Do you have a reproduction or references to the other people facing issues with it? On Thursday, November 7, 2024 at 5:48:49 AM UTC-5 [email protected] wrote: > Thanks for the response, I tried using Struct to send requests and > responses but on the server side I am only receiving the empty response > every time.I checked online many people faced same issue so is it bug or > implementation problem. > > Any help is much appreciated. Thanks! > > > On Wed, Nov 6, 2024 at 10:10 PM Austin Bennett <[email protected]> > wrote: > >> 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/ae62f443-d3eb-4132-a1c3-227bb249a43fn%40googlegroups.com.
