3

Javaを使用してYAMLファイルの値を編集/削除する方法はありますか.

YAML ファイルからデータが入力される struts2-jquery-grid を使用しています。ここで、フィールドを編集すると、YAML ファイルに保存されます。yaml.load() と yaml.dump() をそれぞれ使用して、YAML 形式のファイルから値を読み書きすることができます。しかし、特定のフィールドを編集して削除する考えはありません。

http://code.google.com/p/snakeyaml/wiki/Documentation#Dumping_YAMLリンクを調べたところ、テンプレート プロセッサや、Java Bean プロパティの順序の定義、簡単にするためのコメントなどのその他のオプションを使用できることがわかりました。 yaml . しかし、それらすべては私には意味がありません。

ここで、仮定と呼ばれるオブジェクトのリストをシリアル化するコードを次に示します。gridModel.add (仮定); 、クラス Assumption (束縛とセッターを持つ 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 というファイルに次のように出力されます。

  • !!com.example.Assumption column1: '1' column2: Balwant column3: SPJ column4: rerer column5: null
  • !!com.example.Assumption column1: '' column2: Vikas column3: RNC column4: エラー column5: null
  • !!com.example.Assumption column1: '3' column2: '' column3: PNBE column4: エラー column5: null
  • !!com.example.Assumption column1: '4' column2: Diwakar column3: BGP column4: rerer column5: null
  • !!com.example.Assumption column1: '5' column2: Ajay column3: Godda column4: '' column5: null

逆シリアル化の場合、コードは次のとおりです。

            InputStream input = new FileInputStream(new File("D:/yaml.yaml"));
    Yaml yaml = new Yaml();
    for (Object data : yaml.loadAll(input))
        System.out.println("Data:"+data);

コンソールへの出力は次のとおりです。

データ: [仮定 [列 1 = 1、列 2 = バルワント、列 3 = SPJ、列 4 = 後、列 5 = null]、仮定 [列 1 =、列 2 = Vikas、列 3 = RNC、列 4 = erer、列 5 = null]、仮定 [ column1=3, column2=, column3=PNBE, column4=erer, column5=null], 仮定 [column1=4, column2=Diwakar, column3=BGP, column4=reer, column5=null], 仮定 [column1=5, column2 =Ajay、column3=Godda、column4=、column5=null]]

私はyamlとstruts2が初めてです。だから、きれいな解決策に答えてください。要件の説明中に間違っていた場合は、訂正してください。前もって感謝します...

4

1 に答える 1

0

編集する唯一の方法は、既存の yaml を上書きすることです。グリッドから値を取得し、ti を既存の値に上書きする必要があります。

于 2012-12-03T07:14:04.707 に答える