有没有办法使用java 编辑/删除 YAMLfile中的值。
我正在使用struts2-jquery-grid,其中数据将从YAML文件中填充。现在,如果我编辑字段,它应该保存在YAML文件中。我能够分别使用 yaml.load()和yaml.dump()从YAML格式读取值并将值写入文件。但是,我不知道编辑和删除特定字段。
我已经阅读了http://code.google.com/p/snakeyaml/wiki/Documentation#Dumping_YAML链接,我读到我们可以使用模板处理器和其他选项,例如定义java bean属性的顺序,注释使yaml更容易。但所有这些对我来说都没有任何意义。
这是我的代码序列化这里名为 assume 的对象列表。在 gridModel.add(假设); 中,我将类假设(带有过滤器和设置器的bean类)的值存储到 gridModel 中的列表中。
gridModel.add(assumption);
try {
FileWriter pr=new FileWriter("D:/yaml.yaml");
DumperOptions options = new DumperOptions();
options.setDefaultFlowStyle(DumperOptions.FlowStyle.BLOCK);
Yaml yaml = new Yaml(options);
String output=yaml.dump(gridModel);//,Tag.MAP, null);
pr.write(output);
System.out.print(pr.toString());
System.out.println();
pr.close();
}catch(Exception e){
e.printStackTrace();
}
我在一个名为yaml.yaml的文件中输入:
对于反序列化,代码为:
InputStream input = new FileInputStream(new File("D:/yaml.yaml"));
Yaml yaml = new Yaml();
for (Object data : yaml.loadAll(input))
System.out.println("Data:"+data);
控制台的输出为:
数据:[假设[column1 = 1,column2 = Balwant,column3 = SPJ,column4 = rerer,column5 = null],Assumption [column1 =,column2 = Vikas,column3 = RNC,column4 = erer,column5 = null] ,Assumption [column1 = 3,column2 =,column3 = PNBE,column4 = erer,column5 = null],Assumption [column1 = 4,column2 = Diwakar,column3 = BGP,column4 = rerer,column5 = null],Assumption [column1 = 5,column2 = Ajay,column3 = Godda,column4 =,column5 = null]]
我是yaml和struts2的新手。所以,请回答一个干净的解决方案。如果我在描述要求时错了,请纠正我。提前谢谢......
答案 0 :(得分:0)
我认为编辑的唯一方法是覆盖现有的yaml。我们需要从网格中获取值并将ti覆盖到现有值。