有沒有什麼辦法來編輯/刪除使用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代碼。 –