如何解决如何在 JSON 模板中进行字符串替换?
如果我有一个 JSON 模板,其中的某些变量应替换为其实际值,是否有处理正确转义的好方法?
例如,$value
可以替换为包含 "
之类的字符的字符串,这些字符应在 JSON 中进行特殊处理。
{ "x": $value }
模板可以是任意复杂的。所以用python等编程语言编写模板,然后用那种语言进行替换,再转储JSON输出,并不是一个好的解决方案。
请注意,我用 jq
标记了这个问题。我不确定它与这个问题是否严格相关。如果没有,请删除标签。我标记 jq
是因为知道 jq
的人可能也知道我的问题的解决方案,尽管 jq 只是用于转换 JSON 文件。一个优雅的解决方案可能类似于 jq
,因为它定义了特定领域的语言。
解决方法
jq 作为模板引擎工作得很好,但也有一些选择,例如取决于“模板”本身是否是有效的 JSON。
在您给出的示例中,模板不是有效的 JSON,但它可能是有效的 jq,因此使用 jq "$-variables" 的策略是有意义的,例如大致如下:
jq -n --arg value "someValue" -f template.jq
其中 template.jq
是您的模板。
jq Cookbook 中详细解释了使用 jq 作为模板引擎的三种不同策略:
https://github.com/stedolan/jq/wiki/Cookbook#using-jq-as-a-template-engine
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。