微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 JSON 模板中进行字符串替换?

如何解决如何在 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?