gpt4 book ai didi

java - 从原始 avro 模式创建对象

转载 作者:行者123 更新时间:2023-11-30 06:02:41 25 4
gpt4 key购买 nike

假设我在 avro 中有一个像这样的模式

{ "type" : "string" }

我应该如何在java中从这个模式创建对象?

最佳答案

我没有找到直接使用 java avro lib 执行此操作的方法

但你仍然可以这样做

  public static byte[] jsonToAvro(String json, Schema schema) throws IOException {
DatumReader<Object> reader = new GenericDatumReader<>(schema);
GenericDatumWriter<Object> writer = new GenericDatumWriter<>(schema);
ByteArrayOutputStream output = new ByteArrayOutputStream();
Decoder decoder = DecoderFactory.get().jsonDecoder(schema, json);
Encoder encoder = EncoderFactory.get().binaryEncoder(output, null);
Object datum = reader.read(null, decoder);
writer.write(datum, encoder);
encoder.flush();
return output.toByteArray();
}
Schema PRIMITIVE = new Schema.Parser().parse("{ \"type\" : \"string\" }");
byte[] b = jsonToAvro("\"" + mystring + "\"", PRIMITIVE);

来自 How to avro binary encode my json string to a byte array?

关于java - 从原始 avro 模式创建对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51967253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com