我使用包含JSON的文件来配置我的应用程序的内部。我希望能够使用系统属性配置我的值,并在解组JSON时对它们进行变量替换。
我写过的模板部分并不是什么大不了的事。我想弄清楚的是将其插入我的ObjectMapper的最佳方式。
从四处查看,我认为最好的地方是JsonParser.getText方法,但我似乎无法找到任何理智的方法来做到这一点。
这是我尝试做的事情的片段示例。基本上我需要在反序列化之前解析该属性。
我在那里抛出了Path示例,因为之前我在POJO的setter上天真地执行了这个操作,导致JDK7Module的路径反序列化失去了理智(它不喜欢:)
[
{ "name": "${sys:NAME}",
"path": "${sys:ROOT}"
}
]
答案 0 :(得分:0)
我最终创建了一个解析FilterInputStream的属性。当我从代码中的文件反序列化JSON时,我有这种奢侈。
使用它作为灵感,但由于令牌大小不同,必须完全实现它并以稍微不同的方式执行:
Filter (search and replace) array of bytes in an InputStream
我仍然渴望听到关于如何陷入杰克逊正常流程的任何想法,因为这可能是我想要扩展到JAX-RS流程的东西,我不确定我是否可以访问这些流程输入流 - 虽然我想我可以在那个API中找到钩子来做到这一点。