0

我试图ObjectMapper为内置的play.libs.Json. 我遵循了文档,但是 MapperLoader 似乎被忽略了。

这就是我所做的(基于文档):

  • 创建 CustomMapperLoader public class JsonMapperLoader extends GuiceApplicationLoader { @Override public GuiceApplicationBuilder builder(final Context context) { ObjectMapper mapper = Json.newDefaultMapper() .setDateFormat(new SimpleDateFormat(Constants.ISO8601_DATE_FORMAT)); Json.setObjectMapper(mapper); return super.builder(context); } }

  • 在 application.conf 中显式加载加载器:

play.application.loader = "JsonMapperLoader"

当我序列化日期时,它仍然给我时间戳而不是指定的格式。

我有几个解决方法:

  1. 我在创建过程中设置了对象映射器 ApplicationController
  2. 我禁用play.core.ObjectMapperProvider并启用我的CustomObjectMapperProvider.

这个问题有更好的选择吗?

感谢和问候,

4

1 回答 1

0

我从未尝试过手册中建议的方法(使用自定义 ApplicationLoader)。我使用另一种技术。简而言之:有一个类,它配置了 ObjectMapper;该类作为单例注入到模块中。

您可以在此处查看完整的代码示例。

于 2016-07-02T15:34:32.327 回答