YAML锚点作为URL字符串中的占位符
尝试以添加方式使用锚, 下面的YAML代码将不起作用,但可以解释我希望它做什么YAML锚点作为URL字符串中的占位符,yaml,snakeyaml,property-placeholder,Yaml,Snakeyaml,Property Placeholder,尝试以添加方式使用锚, 下面的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: *UPD
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:&主持人1“你好”
a2:&主播2“月亮”
物业:*主播1“-”*主播2
属性应产生“hello moon”
有可能吗?还尝试使用${}代替锚点这在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标记(在本例中是类似胡子的标记)作为占位符。加载后需要对数据进行后处理,以便用适当的内容替换占位符。这在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标记(在本例中是类似胡子的标记)作为占位符。加载后需要对数据进行后处理,以便用适当的内容替换占位符