func DecodeJSON(data []byte, out interface{}) error
DecodeJSON tries to decompress the given data. The call to decompress, fails
if the content was not compressed in the first place, which is identified by
a canary byte before the compressed data. If the data is not compressed, it
is JSON decoded directly. Otherwise the decompressed data will be JSON
decoded.
EncodeJSONAndCompress encodes the given input into JSON and compresses the
encoded value (using Gzip format BestCompression level, by default). A
canary byte is placed at the beginning of the returned bytes for the logic
in decompression method to identify compressed input.