我正在尝试将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字符串的建议。谢谢!
最佳答案
如果它是this JsonEncoder
,则没有任何公共构造函数。它说“使用EncoderFactory
构造”。但是,EncoderFactory
确实具有jsonEncoder
工厂方法,该方法采用Schema
和OutputStream
。
我只是尝试了一下,创建JsonEncoder
的方法是:
JsonEncoder jsonEncoder = EncoderFactory.get().jsonEncoder(genericRecord.getSchema(), out);