【问题标题】:Convert object with Avro fields to json将带有 Avro 字段的对象转换为 json
【发布时间】:2018-11-20 10:28:06
【问题描述】:

我有以下代码将对象转换为 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 字段时会失败。 实际上,我有更多数据,例如包含 Avro 记录值的 Sets 和 Maps,但我认为这一点是正确的。

您如何设法将 avro 序列化为 json,尤其是当它是非 avro 对象的一部分时?

【问题讨论】:

    标签: java json avro


    【解决方案1】:

    要使用 Jackson 将您的 Object val 转换为 JSON:

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

    【讨论】:

    • 这是如何处理avro 记录的?
    • 你找到答案了吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 2017-09-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多