Avro C++ 将 avro 对象转换为 json

问题描述 投票:0回答:1

我正在使用 Avro C++ 库。我有一个使用“解码”函数和字节流作为源获得的二进制对象。我需要将其转换为 json 字符串,对象架构可用。有没有办法做到这一点?我找不到例子。

c++ avro
1个回答
0
投票

这样解决:

ObjectType 对象;

std::unique_ptravro::InputStream ObjectInputStream = avro::memoryInputStream((uint8_t *)PointerToBinaryData, BinaryDataSize);

avro::DecoderPtr 解码器 = avro::binaryDecoder();

解码器->init(*ObjectInputStream);

avro::decode(*解码器,对象);

std::ifstream SchemaFile(“/path_to_the_schema/schema_file.avsc”);

avro::ValidSchema 架构;

avro::compileJsonSchema(SchemaFile, Schema);

std::unique_ptravro::OutputStream JsonOutputFile = avro::fileOutputStream("path_to_json_file/json_file.json");

avro::EncoderPtr JsonEncoder = avro::jsonPrettyEncoder(Schema);

JsonEncoder->init(*JsonOutputFile);

avro::encode(*JsonEncoder, 对象);

JsonEncoder->flush();

© www.soinside.com 2019 - 2024. All rights reserved.