All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.networknt.kafka.common.AvroConverter Maven / Gradle / Ivy

package com.networknt.kafka.common;

import org.apache.avro.io.DatumWriter;
import org.apache.avro.io.NoWrappingJsonEncoder;
import org.apache.avro.specific.SpecificDatumWriter;
import org.apache.avro.specific.SpecificRecord;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

public class AvroConverter {
    public static String toJson(SpecificRecord record, boolean pretty) {
        try (ByteArrayOutputStream baos = new ByteArrayOutputStream()) {
            NoWrappingJsonEncoder jsonEncoder = new NoWrappingJsonEncoder(record.getSchema(), baos, pretty);
            DatumWriter writer = new SpecificDatumWriter<>(record.getSchema());
            writer.write(record, jsonEncoder);
            jsonEncoder.flush();
            baos.flush();
            byte[] bytes = baos.toByteArray();
            return new String(bytes, StandardCharsets.UTF_8);
        } catch (IOException e) {
            e.printStackTrace();
            return null;
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy