Zip*_*per 8 java spring jersey jackson
从这个答案(/sf/answers/1092378311/)我试图设置杰克逊在我的DTO中处理Joda日期时间,但我很难理解ObjectMapper代码应该存在的位置.我在ObjectMapper上阅读了很多不同的文章,但它们似乎都在处理旧版本.我可以拿走我已经发现的东西并破解它的工作,但我想知道用Spring 3.2.2/Jackson 2/Jersey做什么被认为是正确的方法.我应该指出,我只想添加joda时间映射模块,我不想要任何其他自定义的jackson.我有点像春天的新手,所以请原谅我,如果这是一个简单而明显的答案,我只是错过了.
小智 6
我从未使用过Spring,但是使用RESTeasy框架我遇到了同样的问题.知道这一点,我会尽力给你一些答案/方向来搜索.
为了回答你的一个问题,每当你必须处理序列化/反序列化到json进程中时,ObjectMapper"必须存活".例如 :
MyObject myObject = new MyObject();
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(myObject);
Run Code Online (Sandbox Code Playgroud)
正如您提供的链接所指出的,如果要将模块添加到ObjectMapper,则必须在创建映射器后添加以下行:
mapper.registerModule(new AnyModuleYouNeed());
Run Code Online (Sandbox Code Playgroud)
现在,我不是Spring用户,但我认为当spring提供自己的序列化/反序列化过程时,你希望这个过程是自动的.
我在网上找到了这个:http://magicmonster.com/kb/prg/java/spring/webmvc/jackson_custom.html
在您的情况下,我认为只有第2点和第3点对您有用,并且因为您不需要自定义序列化程序,但您只需要向映射器添加模块,我认为自定义ObjectMapper应该看起来像那:
@Component
public class CustomObjectMapper extends ObjectMapper {
public CustomObjectMapper() {
registerModule(new AnyModuleYouNeed());
}
}
Run Code Online (Sandbox Code Playgroud)
在我指向你的网站上,他们讲述了一种优雅的方式来为Spring 3.1用户注册一个cusom ObjectMapper:http://magicmonster.com/kb/prg/java/spring/webmvc/mvc_spring_config_namespace.html
它可能是有用的.
最后,请原谅我可怜的英语,如果你的问题得到解决,请告诉我.
| 归档时间: |
|
| 查看次数: |
7531 次 |
| 最近记录: |