我有一些Java的GenericRecord
s的Avro数据,我想转换为JSON,我注意到有两种方法可以做到这一点:一种涉及使用JsonEncoder
,另一种涉及简单地在GenericRecord
上调用toString()
。在Avro中,调用GenericRecord的toString()和使用JSONEncoder有什么区别?
经过一些简短的实验后,两种方法似乎都会产生相同的结果,并且在任何一种情况下,生成的JSON字符串都可以使用JsonDecoder
转换回Avro。所以,我的问题是:
两者之间是否有任何功能差异,是否有任何理由使用一个在另一个?
我正在使用Avro 1.7.7。
你能分享你是如何将avro通用记录转换成json的? – dbustosp 2017-09-08 11:46:17
我使用了JsonEncoder,因为我需要能够将JSON反序列化成GenericRecords。有一个使用JsonEncoder从GenericRecords中写出JSON的例子:https://www.programcreek.com/java-api-examples/index.php?api=org.apache.avro.io.JsonEncoder – alphaloop 2017-09-17 06:49:30