Java如何将GenericRecord转换为json字符串?

Java如何将GenericRecord转换为json字符串?,java,json,avro,Java,Json,Avro,我正在尝试将GenericRecord转换为json字符串,以便将其传递给类似JSONObject的对象。我正在考虑使用JsonEncoder来实现这一点。现在我有一些类似于: ByteArrayOutputStream out = new ByteArrayOutputStream(); JsonEncoder jsonEncoder = new JsonEncoder(genericRecord.getSchema(),out); 但是它给了我一个错误: error: incompatib

我正在尝试将GenericRecord转换为json字符串,以便将其传递给类似JSONObject的对象。我正在考虑使用JsonEncoder来实现这一点。现在我有一些类似于:

ByteArrayOutputStream out = new ByteArrayOutputStream();
JsonEncoder jsonEncoder = new JsonEncoder(genericRecord.getSchema(),out);
但是它给了我一个错误:

error: incompatible types: ByteArrayOutputStream cannot be converted to JsonGenerator
根据JSONECODER的源代码,它应该有一个接受outputstream的构造,所以我不确定为什么会出现这个错误。 有人能建议如何解决这个问题吗?关于如何将GenericRecord转换为json字符串的任何其他建议也是受欢迎的。谢谢

如果是,它没有任何公共构造函数。它说“使用
EncoderFactory
构造”,但确实有一个工厂方法,它采用
Schema
OutputStream

我刚刚试过,创建
jsonecoder
的方法是:

JsonEncoder jsonEncoder = EncoderFactory.get().jsonEncoder(genericRecord.getSchema(), out);