有没有什么办法来编辑/删除使用java的YAML文件中的值。使用snakeYaml更新yaml文件中的值
我正在使用struts2-jquery-grid从YAML文件填充数据。现在,如果我编辑字段,它应该保存在YAML文件中。我可以分别使用yaml.load()和yaml.dump()从YAML格式中读取值并将其写入文件。但是,我不知道要编辑和删除特定字段。
我已经通过http://code.google.com/p/snakeyaml/wiki/Documentation#Dumping_YAML链接了,我看,我们可以使用模板处理器和其他选项,如定义的Java Bean属性的顺序,评论做出便于YAML的。但所有这些对我来说都没有任何意义。
这里是我的代码序列化对象列表假设这里。在gridModel.add(假设);,我在gridModel中将这个类的假设值(带有fet件和setter的bean类)的值存储在这里。
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();
}
的outout我得到一个名为yaml.yaml文件:
- !com.example.Assumption 列1: '1' 列2:Balwant 第3栏:SPJ 第4栏:rerer 第5栏:null
- !! com.example.假设 第1栏:'' 列2:维卡斯 栏3:RNC column4:ERER column5:空
- !! com.example.Assumption 列1: '3' 列2: '' 栏3:PNBE column4:ERER column5:空
- !com.example.Assumption 列1: '4' 列2:迪瓦卡尔 栏3:BGP column4:rerer column5:空
- !com。示例。假设 列1: '5' 列2:阿贾伊 栏3:Godda column4: '' column5:空
对于反序列的代码是:
InputStream input = new FileInputStream(new File("D:/yaml.yaml"));
Yaml yaml = new Yaml();
for (Object data : yaml.loadAll(input))
System.out.println("Data:"+data);
的输出到控制台是:
Data:假设[column1 = 1,column2 = Balwant,column3 = SPJ,column4 = rerer,column5 = null],Assumption [column1 = column2 = Vikas,column3 = RNC,column4 = erer,column5 = null] 3,column2 = column3 = PNBE,column4 = erer,column5 = null],假设[column1 = 4,column2 = Diwakar,column3 = BGP,column4 = rerer,column5 = null],Assumption [column1 = 5,column2 = Ajay ,column3 = Godda,column4 =,column5 = null]]
我是yaml和struts2的新手。所以,请回答一个干净的解决方案。如果我在描述要求时错了,请纠正我。在此先感谢...
我觉得编辑基本上是:读 - >修改 - >写。你能这样做吗? –
你是对的。正如我上面提到的,我使用的是一个jqGrid网格。所以,我可以使用网格来读取,修改以及修改我想反映到yaml文件。 –
显示处理jqGrid修改的java代码。 –