That's a fair point; though it would be good to have a clean way to create a Message adapter for JSON parsers without re-implementing the functionality in JsonFormat.
On Tue, Oct 6, 2015 at 6:24 PM Feng Xiao <[email protected]> wrote: > On Tue, Oct 6, 2015 at 2:31 PM, Gesly George <[email protected]> > wrote: > >> >> I have been looking into ways in which the JsonFormat class can be used >> to create a TypeAdapter<Message> that can be registered with Gson. >> Writing out a Message object to JSON is not an issue but parsing a JSON >> into Message object is a challenge as Gson TypeAdapter's read method >> gives you a JsonReader as input. >> >> Internally, JsonFormat's merge method creates a JsonReader from >> java.io.Reader, so if a merge method can take a JsonReader as input, >> then it should be possible to create an appropriate TypeAdapter that can >> be registered with Gson. >> >> Would it make sense to introduce a merge() method on JsonFormat that >> takes a JsonReader. Something like >> >> public void merge(JsonReader json, Message.Builder builder); >> >> >> Please let me know what you think. >> > The use of Gson is an implementation detail of the JsonFormat class. We > are still exploring whether it meets our proto3 spec strictly and may > replace it with other JSON parsers. For this reason it's probably not a > good idea to expose it in public API. > > >> >> >> On Monday, September 21, 2015 at 4:20:35 PM UTC-7, Feng Xiao wrote: >>> >>> >>> >>> On Mon, Sep 21, 2015 at 3:37 PM, Siddharth Chhabra < >>> [email protected]> wrote: >>> >>>> Quick question about the json support >>>> 1. Will we get json support if we mix proto2 and proto3 syntax ? is >>>> that supported ? >>>> >>> You can mix that only in a sub-set of the languages (languages with >>> proto2 support: C++, Java, Python and Go). When converted to JSON, >>> proto2-only features like extensions will be ignored completely. >>> >>> >>>> 2. Since we are using extensions in proto2, can that be used as a >>>> member field in a proto3 syntax file ? >>>> >>> Not sure what you mean. You can import proto2 files in proto3 syntax >>> files (again, only work when compiled into languages with proto2 support) >>> and declare the type of a proto3 field to be a proto2 message, but you can >>> not extend a proto3 message or declare an extension to a proto2 message in >>> a proto3 syntax file. >>> >>> >>>> >>>> Please let us know. >>>> >>>> On Fri, Sep 11, 2015 at 5:35 PM, Feng Xiao <[email protected]> wrote: >>>> >>>>> >>>>> >>>>> On Fri, Sep 11, 2015 at 5:23 PM, Siddharth Chhabra < >>>>> [email protected]> wrote: >>>>> >>>>>> Was this added ? >>>>>> I cant find the JsonFormat class in the api referenc >>>>>> The JsonFormat class was mentioned in the thread "Will protobuf >>>>>> support JSON?" >>>>>> >>>>>> The api is here : >>>>>> https://developers.google.com/protocol-buffers/docs/reference/java/index >>>>>> We are thinking of upgrading to protobuf 3 and want to make sure json >>>>>> support is there since otherwise we dont have a need to upgrade. >>>>>> >>>>> Sorry, the Java doc hasn't been updated yet. You can find the >>>>> JsonFormat class here: >>>>> >>>>> https://github.com/google/protobuf/blob/master/java/util/src/main/java/com/google/protobuf/util/JsonFormat.java >>>>> >>>>> >>>>> >>>>>> >>>>>> Please let us know >>>>>> 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 post to this group, send email to [email protected]. >>>>>> Visit this group at http://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 http://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 http://groups.google.com/group/protobuf. For more options, visit https://groups.google.com/d/optout.
