[英]Convert object with Avro fields to json
I have the following code to convert an object to Json: 我有以下代码将对象转换为Json:
public static Function<Object, Object> WRITE_JSON = (Object val) -> {
try {
return new ObjectMapper().writeValueAsString(val);
} catch (IOException e) {
// log exception
return "";
}
}
This works fine for most cases, but fe I have an Avro class named AvroData
, and a class that saves it: 在大多数情况下,这都可以正常工作,但是如果我有一个名为
AvroData
的Avro类和一个保存它的类:
class SomeData {
private AvroData avroData;
// more fields, getter/setter boilerplate, etc...
}
When I try to serialise the object to Json
, this fails when trying to serialize the Avro
field. 当我尝试将对象序列化为
Json
时,尝试序列化Avro
字段时失败。 In reality, I have a bit more data, like Set
s and Map
s that contain Avro
record values, but I think the point stands. 实际上,我还有更多数据,例如包含
Avro
记录值的Set
和Map
,但是我认为这很重要。
How do you manage to serialise a avro to json, but specifically when it's part of a Non-avro object? 您如何管理将avro序列化为json,特别是当它是Non-avro对象的一部分时?
To convert your Object val
in JSON with Jackson: 要使用Jackson转换JSON中的
Object val
:
ObjectWriter ow = new ObjectMapper().writer().withDefaultPrettyPrinter();
String json = ow.writeValueAsString(val);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.