【发布时间】:2017-01-13 22:54:06
【问题描述】:
我使用 avro-tools 从 avsc 文件生成 java 类,使用:
java.exe -jar avro-tools-1.7.7.jar compile -string schema myfile.avsc
然后我尝试通过ObjectMapper将这些对象序列化为json, 但总是得到一个 JsonMappingException 说“不是枚举”或“不是联合”。 在我的测试中,我使用它的构建器或构造器创建生成的对象。 对于不同类的对象,我得到了这样的例外......
示例代码:
ObjectMapper serializer = new ObjectMapper(); // com.fasterxml.jackson.databind
serializer.register(new JtsModule()); // com.bedatadriven.jackson.datatype.jts
...
return serializer.writeValueAsBytes(avroConvertedObject); // => JsonMappingException
我还尝试了许多配置:serializer.configure(...) 但仍然失败。 版本: Java 1.8、jackson-datatype-jts 2.3、 jackson-core 2.6.5,jackson-databind 2.6.5,jackson-annotations 2.6.5
有什么建议吗? 谢谢!
【问题讨论】:
-
你找到解决这个问题的方法了吗?我也面临同样的问题。
-
我也遇到了这个问题。
-
是的,我解决了。关键是端到端使用一个库。我找到了一种将 avro-tools 也用于 json 序列化的方法。抱歉,我不能给你一个示例代码,因为这几天我在度假,我无法访问我的工作资源...... HTH
-
我以不同的方式解决了这个问题。我将 avro 发行版中的速度模板复制到我的项目中,并在所有 SHEMA$ 属性和 getter 方法上添加了@com.fasterxml.jackson.annotation.JsonIgnore。
-
@Amir 是控制器的示例代码吗?
标签: java json serialization avro