in src/main/java/com/epam/eco/commons/avro/AvroUtils.java [102:126]
public static String encodeRecordToJson(GenericRecord record) {
Validate.notNull(record, "Record is null");
ByteArrayOutputStream out = null;
try {
out = new ByteArrayOutputStream();
Encoder encoder = EncoderFactory.get().jsonEncoder(record.getSchema(), out);
DatumWriter<Object> writer;
if (record instanceof SpecificRecord) {
writer = new SpecificDatumWriter<>(record.getSchema());
} else {
writer = new GenericDatumWriter<>(record.getSchema());
}
writer.write(record, encoder);
encoder.flush();
return new String(out.toByteArray(), StandardCharsets.UTF_8);
} catch (IOException ioe) {
throw new RuntimeException(ioe);
} finally {
IOUtils.closeQuietly(out);
}
}