【发布时间】:2015-06-24 15:44:44
【问题描述】:
我正在使用一个包含 JSON 的文件来配置我的应用程序的内部结构。我希望能够使用系统属性配置我的值,并在解组 JSON 时对它们进行变量替换。
我写的模板部分没什么大不了的。我想弄清楚的是将其插入我的 ObjectMapper 的最佳方法。
环顾四周,我认为最好的地方是 JsonParser.getText 方法,但我似乎找不到任何理智的方法来做到这一点。
这是我正在尝试做的一个 sn-p 示例。基本上我需要在反序列化之前解析该属性。
我将 Path 示例放在那里,因为之前我天真地在 POJO 的设置器上执行此操作,这导致 JDK7Module 的 Path 反序列化失去了理智(它不喜欢 :)
[
{ "name": "${sys:NAME}",
"path": "${sys:ROOT}"
}
]
【问题讨论】:
-
字符串替换会做对吗?
-
问题不在于替代品,而在于将其与杰克逊挂钩。我使用 Matcher 来完成实际的工作,这很简单。不幸的是,由于诸如 nio.Path 之类的事情,我必须在反序列化过程中对传递给它的原始输入流或读取器进行替换。这实际上给了我一个想法;)谢谢!