尝试以添加方式使用锚点, 以下YAML代码不起作用,但可以解释我想要它做什么
endpoint:
data.updates.index.name: &UPDATES-INDEX-NAME "data-updates"
meta.data.type.name: &DATA-TYPE-NAME "meta-data"
last.run.type.name: &RUN-TYPE-NAME "lastrun"
search.ctx: *UPDATES-INDEX-NAME "/" *DATA-TYPE-NAME "/_search"
search.lastrun: *UPDATES-INDEX-NAME "/" *RUN-TYPE-NAME "/_search"
update.lastrun: *UPDATES-INDEX-NAME "/" *RUN-TYPE-NAME "/"
a1:& anchor1"你好" a2:& anchor2" moon" property:* anchor1" - " * anchor2
财产应该产生"你好月亮" 它有可能吗?尝试使用$ {}而不是锚点
答案 0 :(得分:0)
YAML无法做到这一点。锚/别名功能用于序列化循环数据结构,而不是用于重复使用表达式中的值。在YAML中,没有表达式(好吧,除了YAML 1.1的!!merge
标签,它已经过时,在这里没有帮助)。您需要在加载时或加载后对数据执行所有操作。
可能的方法:
endpoint:
data.updates.index.name: "data-updates"
meta.data.type.name: "meta-data"
last.run.type.name: "lastrun"
search.ctx: "{{data.updates.index.name}}/{{meta.data.type.name}}/_search"
search.lastrun: "{{data.updates.index.name}}/{{last.run.type.name}}/_search"
update.lastrun: "{{data.updates.index.name}}/{{last.run.type.name}}/"
如您所见,我使用了非YAML标记(在这种情况下,类似小胡子)作为占位符。您需要在加载后对数据进行后处理,以便用适当的内容替换占位符。