Jackson模板属性替换



我正在使用一个包含JSON的文件来配置我的应用程序的内部。我希望能够用系统属性来配置我的值,并在解组JSON时对它们进行变量替换。

我写的模板部分没什么大不了的。我想弄清楚的是将它插入ObjectMapper的最佳方式。

环顾四周,我认为最好的地方是JsonParser.getText方法,但我似乎找不到任何合理的方法来做到这一点。

下面是我尝试做的一个片段示例。基本上,我需要在对属性进行反序列化之前解析它。

我把Path示例放在那里,因为之前我天真地在POJO的setter上执行这一操作,这导致JDK7Module的Path反序列化失去了理智(它不喜欢:)

[
 { "name": "${sys:NAME}",
   "path": "${sys:ROOT}"
 }
]

我最终创建了一个解析FilterInputStream的属性。当我从代码中的一个文件反序列化JSON时,我有这种奢侈。

以此为灵感,但由于代币大小不同,必须完全实现它,并以略有不同的方式实现:

过滤(搜索和替换)InputStream 中的字节数组

我仍然渴望听到关于如何将其嵌入Jackson的正常流的任何想法,因为这可能是我想扩展到JAX-RS流的东西,我不确定我是否有权包装这些输入流-尽管我想我可以在API中找到挂钩来做这件事。

最新更新