更改 Play 2.5 的 JsonConverter 日期格式
Change the JsonConverter date format for Play 2.5
我尝试为内置 play.libs.Json
配置 ObjectMapper
。我已经按照文档进行操作,但是 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"
当我序列化日期时,它仍然给我时间戳而不是指定的格式。
我有几个解决方法:
- 我在创建过程中设置了对象映射器
ApplicationController
- 我禁用
play.core.ObjectMapperProvider
并启用我的 CustomObjectMapperProvider
。
这个问题有没有更好的替代方案?
感谢和问候,
我从未尝试过手册中建议的方法(使用自定义 ApplicationLoader)。我使用另一种技术。简而言之:有一个class,它配置了ObjectMapper; class 作为单例注入到模块中。
您可以查看完整的代码示例here。
我尝试为内置 play.libs.Json
配置 ObjectMapper
。我已经按照文档进行操作,但是 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"
当我序列化日期时,它仍然给我时间戳而不是指定的格式。
我有几个解决方法:
- 我在创建过程中设置了对象映射器
ApplicationController
- 我禁用
play.core.ObjectMapperProvider
并启用我的CustomObjectMapperProvider
。
这个问题有没有更好的替代方案?
感谢和问候,
我从未尝试过手册中建议的方法(使用自定义 ApplicationLoader)。我使用另一种技术。简而言之:有一个class,它配置了ObjectMapper; class 作为单例注入到模块中。
您可以查看完整的代码示例here。