将具有Avro字段的对象转换为json

时间:2018-11-20 10:28:06

标签: java json avro

我有以下代码将对象转换为Json:

public static Function<Object, Object> WRITE_JSON = (Object val) -> {
    try {
        return new ObjectMapper().writeValueAsString(val);
    } catch (IOException e) {
        // log exception
        return "";
    }         
}

这在大多数情况下都可以正常工作,但是我有一个名为AvroData的Avro类和一个保存它的类:

class SomeData {
    private AvroData avroData;
    // more fields, getter/setter boilerplate, etc...
}

当我尝试将对象序列化为Json时,尝试序列化Avro字段时失败。 实际上,我还有更多数据,例如SetMap包含Avro记录值,但我认为这很重要。

如何将avro序列化为json,特别是当它是Non-avro对象的一部分时?

1 个答案:

答案 0 :(得分:0)

要使用Jackson转换JSON中的Object val

ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(val);