如何在Riak-Java中注册Scala Jackson模块?

问题描述:

需要在存储到Riak时支持Scala列表和选项。看起来杰克逊的Scala模块会为此工作。然而,它将如何被钩入Riak中的对象映射器?不知道我是否需要重写某些内容或是否有可以轻松解决的注释。如何在Riak-Java中注册Scala Jackson模块?

https://github.com/FasterXML/jackson-module-scala

几个版本前,我加入了getObjectMapper()方法将JSONConverter有人曾要求它。这是用于访存/存储操作的Converter,如果您正在传入POJO并且尚未创建并通过自己的传入。

你会想自己实例化JSONConverter并获得ObjectMapper从中:

JsonConverter<MyClass> converter = new JSONConverter<MyClass>(MyClass.class, bucketName); 
ObjectMapper om = converter.getObjectMapper(); 

现在,您可以用ObjectMapper注册模块,然后使用JSONConverter与读取/存储操作(使用withConverter()方法StoreObjectFetchObject)。

我想这就是你要找的。如果你需要更多的控制序列化/反序列化你的对象,你也可以编写你自己的Converter - 我已经写了一个关于这个主题的食谱入口:https://github.com/basho/riak-java-client/wiki/Using-a-custom-Converter

+0

非常感谢。我正在烹饪一个无处不在的定制分支。这也将在新的烹饪书籍维基? – crockpotveggies 2013-03-06 17:18:38

+0

其实,从头开始,也许我可以自己更新文档(在用Scala完成课程之后)。 :) – crockpotveggies 2013-03-06 17:33:23

+0

当然,它在'JSONConverter'的Javadoc中。实际上有人在github上打开了一个问题,他们要求添加一个将ObjectMapper作为参数的构造函数。同样的结果,但不笨重。只是没有得到它的优先事项。如果你想写一些特定的食谱scala,我很乐意添加它。 – 2013-03-06 18:52:05