Two Way Standard JSON
This release includes full support for sending regular internet JSON into avro and getting regular JSON back out again, and a large number of cleanup and fixing. Many thanks to the help from the community!
- A large number of cleaning up and fixes from @mihaitodor
- Full two-way json serialization support for regular internet json
- OCF reader and writer from @kishaningithub
About JSON to Avro and Avro to JSON
Regular internet json is wild and can have various values for a particular field, such as a "human" field having a value of null of maybe a string containing a name, or even a struct containing details about the "human". To handle accepting JSON of such a form, the previous release provided a one-way JSON encoder, where an avro union is required to be defined, in order to accept the possible types that we will can expect. This functionality was provided in the previous release, but the previous release did not take avro encoded data from within the avro ecosystem and produce regular internet JSON. Instead it produced the style of avro-json described in the avro-spec. This release provides the full two-way support, so that we can take regular internet JSON into the avro ecosystem, and we can send it back out into the internet's standard json ecosystem.
There are many examples in union_test.go where the production of standard JSON is done via the test utility function testNativeToTextualJSONPass.
Also much gratitude to @karrick for his work on this project and his ongoing interest and support. Though he did not contribute directly to this release, I still wanted to thank him here.