我有一个需要动态更新的Yaml模板。
--------------------------------
version: snapshot-01
kind: sample
metadata:
name: abc
options: "<placeholder>"
--------------------------------
Yaml yaml = new Yaml();
InputStream inputStream =
this.getClass().getClassLoader().getResourceAsStream(yamlTemplateLocation);
Map<String, Object>yamlMap = yaml.load(inputStream);
我正在动态替换必需的字段,如下所示。
yamlMap.put("version","v-1.0");
yamlMap.put("options","newOptions");
最后,我将使用以下代码将map转换为字符串和strore作为Yaml文件:
DumperOptions options = new DumperOptions();
options.setSplitLines(false);
Yaml yaml = new Yaml(options);
System.out.println(yaml.dump(yamlMap));
生成的yaml文件为:
version: "v-1.0"
kind: sample
metadata:
name: abc
options: "newOptions"
--------------------------------
我现在有问题了
模板需要修改如下
--------------------------------
version: snapshot-01
kind: sample
metadata:
name: abc
options: "<placeholder>"
---
version: v2
kind: sample
metadata:
type: <abc>
--------------------------------
我必须在模板中包括一些额外的部分,其中包括三个破折号和相同的关键字,如版本,种类和元数据
version: "v-1.0"
kind: sample
metadata:
name: abc
options: "newOptions"
---
version: v2-0
kind: sample
metadata:
type: "newType"
在本例中,三个破折号标记YAML文档的结束和新文档的开始,这意味着在一个文件中有多个YAML文档。在这种情况下,您需要使用LoadAll
加载所有文档,然后使用DumpAll
编写包含多个文档的文件:
java prettyprint-override">List<Object> output = new ArrayList<Object>();
boolean first = true;
for (Map<String, Object> doc : yaml.loadAll(inputStream)) {
if (first) {
doc.put("version","v-1.0");
doc.put("options","newOptions");
first = false;
}
output.add(doc);
}
System.out.println(yaml.dumpAll(output));
您不会遇到重复密钥的问题,因为它们位于不同的文档中。
我试图将上面的文件加载到一个映射中,实体部分下的数据将映射到实体对象的集合。当我得到yaml解析器错误时,这是正确的yaml语法吗。
我想自动部署可变数量的虚拟机(通过副本部署),通过取代密码的密钥保险库秘密。我想为不同的VM使用不同的秘密(例如secret1用于VM1,secret2用于VM2)。根据文档,我需要引用一个带有动态id的秘密https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-keyvault-paramete
假设我想要一个复合键作为采购订单实体的street,city。 下面是我如何识别做这件事, 我想明白@AttributeOverrides注释到底是做什么的?即使我将colomn name更改为something STREET1,我仍然看到使用列名street创建的表。那么column=@column(name=“street”))在这里做什么。 另外,我可以将它作为PurchaseOrder类的
是否有任何方法可以使用java编辑/删除YAMLfile中的值。 我正在使用struts2-jquery-grid,其中数据将从YAML文件中填充。现在,如果我编辑字段,它应该保存在YAML文件中。我能够分别使用yaml.load()和yaml.dump()从YAML格式的文件中读取值并将值写入文件。但是,我没有任何想法来编辑和删除特定的字段。 我经历过http://code.google.com
在 Dreamweaver 中创建重复区域和重复表格并配置表格属性以控制您的页面布局。 重复区域是模板的一部分,这一部分可以在基于模板的页面中重制多次。重复区域通常与表格一起使用,但您也可以为其他页面元素定义重复区域。 使用重复区域,您可以通过重复特定项目来控制页面布局,例如目录项、说明布局或者重复数据行(如项目列表)。 有两个重复区域模板对象可供使用:重复区域和重复表格。 在模板中创建重复区域
考虑以下代码: 我唯一发现的是: dump(Object data)方法接受Java对象并生成YAML文档 和 是只有我一个人,还是文档感觉非常神秘和指定?其中一半是关于我甚至从未听说过的特殊应用。我只看着它就觉得自己很傻,这让我有点生气。 不管怎样;如果你能给我任何帮助,我将不胜感激。