当前位置: 首页 > 知识库问答 >
问题:

如何用Camel和Jackson获得简单的日期时间序列化

暨嘉
2023-03-14

我正在使用Apache Camel 2.14.0来构建一个REST API,并且正在使用 Rest DSL 及其与 POJO 的自动绑定,我相信这使用杰克逊进行(反)序列化。不幸的是,这会从日期时间对象(包括时间顺序,区域,未缓存区域等字段)中生成相当长且不奇怪的JSON。

我希望它能创建/消费一些更简单的东西。

我从这个问题中知道:如何使用Jackson JSON处理器序列化Joda DateTime?

我可以为Jackson对象映射器注册JodaModule,如下所示:

ObjectMapper mapper = new ObjectMapper();
mapper.registerModule(new JodaModule());

但是我找不到一个例子来说明如何在Camel中实现这一点。

我该怎么做呢?在我的骆驼语境中有什么东西,还是完全不同的东西?我想避免编写自定义(反)血清化程序,并且必须单独注释每个 DateTime 字段。

我不需要自定义实现,只需要JodaModule提供的简单实现。

或者,如果Jackson默认更好地序列化不同的日期/时间对象,我可以使用它。

共有1个答案

易俊驰
2023-03-14

首先,据我所知,封送和取消封送可能会将要执行此工作的库作为参数,如:

.marshal().json(JsonLibrary.Jackson, MyObject.class)

我认为默认是Xstream,但我不能确定。

无论如何,我相信对POJO的注释喜欢

@JsonFormat(shape=JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm a z")

应该做到这一点,但是正如你所说,你想避免注释每一个pojo。

或者,您可以创建一个将在JSON创建后运行的处理器。

最后一个选项是编写一个自定义的JSON deserializer(http://Jackson . code Haus . org/1 . 5 . 3/javadoc/org/code Haus/Jackson/map/JSON deserializer . html)

 类似资料:
  • 我将spring MVC用于服务。通过添加依赖项,我的rest控制器自动。 依赖关系 对象 问题 问题出现在中。例如,我想向添加。以下用户-JSON良好, 但是如果我添加一个带有子活动的activity,它就会崩溃! 的确,jackson这个json,我不明白为什么。我得到以下错误..知道吗? 这里的对象与所有字段,也许与我的错误有关?

  • 问题内容: 如果我有两个这样的日期时间: 如何以以下格式获取这些日期时间之间的差异: 我用 但是我只有时间。 问题答案: 试试这个- 询问: 输出:

  • 无法从字符串“1979-12-05T08:00Z”反序列化java.util.Date类型的值:无效表示(错误:无法分析日期值“1979-12-05T08:00Z”:无法分析日期“1979-12-05T08:00.000Z”:虽然它似乎符合格式“yyyy-mm-dd't'hh:mm:ss.sss'z'',但分析失败 到目前为止,我试图包含这种依赖关系: 还有: 但没有奏效。

  • 问题内容: 我从ExtJS获取日期字符串,其格式为: “ 2011-04-08T09:00:00” 当我尝试反序列化此日期时,它将时区更改为“印度标准时间”(该时间增加+5:30)。这就是我反序列化日期的方式: 这样做也不会更改时区。我仍然在IST中得到日期: 如何以无时区麻烦的日期反序列化日期? 问题答案: 我找到了解决方法,但与此同时,我需要在整个项目中注释每个日期的设置器。有没有一种方法可以

  • 谷歌工作表,每个用户有多个子工作表。每个用户都在进行输入,我需要根据数据输入日期/时间计算性能。我使用下面的OneEdit(e)函数,它可以很好地处理1张纸。。。但当我为其他子图纸制作同一脚本的多个副本时。。。它停止工作了。 有人能帮我解决这个问题吗? 提前感谢您阅读我的帖子并帮助我!

  • 我正在开发一个android应用程序,向用户显示预订的时间和日期。目前我使用的是系统时间和日期,但问题是用户可以随时更改它。那么如何得到正确的时间和日期呢?我在这个问题上工作了3天多,但我还没有找到任何解决办法。任何帮助都很感激。