[ https://issues.apache.org/jira/browse/AVRO-1584?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15049388#comment-15049388 ]
Ryan Blue commented on AVRO-1584: --------------------------------- I think using a helper library would be good. My main concern here is correctly representing the data and not performance, but there's a base64 helper lib from Jackson you can use that allows you to add a character or byte at a time (Base64Variants.defaultVariant()) that would work for ByteBuffer. I think a helper method would be fine. For fixed, I'm referring to the GenericData.Fixed class for generic. That corresponds to the "fixed" type in the spec that is a fixed-length byte array. Right now, those become a JSON list of integers. Thanks, David! > Json output doesn't generate base64 for byte arrays > --------------------------------------------------- > > Key: AVRO-1584 > URL: https://issues.apache.org/jira/browse/AVRO-1584 > Project: Avro > Issue Type: Bug > Components: java > Affects Versions: 1.7.7 > Environment: Pure java. > Reporter: Christophe Lorenz > Attachments: AVRO-1584.patch > > > The Json output of java generated code doesn't correctly encode byte arrays. > Using this simple schema : > {"namespace": "example.avro", > "type": "record", > "name": "ByteArrayEncoding", > "fields": [ {"name": "data", "type": "bytes"} ] > } > The toString() > System.out.println(new ByteArrayEncoding(ByteBuffer.wrap(new > byte[]{0,31,65,66,67,(byte)255,(byte)182}))); > Returns raw bytes to string in the json : > {"data": {"bytes": " ABC??"}} > As a byte array is not tied to be a valid string, it should be converted back > and forth to Base64 like other Json implementations : > {"data": {"bytes": "AB9BQkP/tg=="}} -- This message was sent by Atlassian JIRA (v6.3.4#6332)