我正在尝试将GenericRecord转换为json字符串,以便将其传递给类似JSONObject的对象。我正在考虑使用JsonEncoder来做到这一点。现在我有类似的东西:
ByteArrayOutputStream out = new ByteArrayOutputStream();
JsonEncoder jsonEncoder = new JsonEncoder(genericRecord.getSchema(),out);
但是它给我一个错误:
error: incompatible types: ByteArrayOutputStream cannot be converted to JsonGenerator
根据JsonEncoder的源代码,它应该具有一个接受输出流的构造,因此我不确定为什么会出现此错误。 有人可以建议如何解决该问题吗?也欢迎任何其他有关如何将GenericRecord转换为json字符串的建议。谢谢!
答案 0 :(得分:1)
如果为this JsonEncoder
,则没有任何公共构造函数。它说“使用EncoderFactory
进行构造”。 EncoderFactory
确实有一个jsonEncoder
工厂方法,该方法需要一个Schema
和一个OutputStream
。
我刚刚尝试过,创建JsonEncoder
的方法是:
JsonEncoder jsonEncoder = EncoderFactory.get().jsonEncoder(genericRecord.getSchema(), out);