首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用snakeYaml更新yaml文件中的值

使用snakeYaml更新yaml文件中的值
EN

Stack Overflow用户
提问于 2012-11-22 12:17:55
回答 1查看 5K关注 0票数 3

有没有办法使用编辑/删除YAMLfile中的值?

我正在使用struts2-jquery-grid,其中的数据将从YAML文件中填充。现在,如果我编辑字段,它应该保存在YAML文件中。我能够分别使用yaml.load()和yaml.dump()读取YAML格式的值并将其写入文件。但是,我不知道如何编辑和删除特定的字段。

我在YAML链接中看到,我们可以使用模板处理器和其他选项,比如定义java属性的顺序、注释来简化yaml。但所有这些对我来说都没有任何意义。

这是我的序列化的代码,这里有一个称为假设的对象列表。在gridModel.add(assumption);,中,我将类假设(带脚镣和设置器的bean类)的值存储到gridModel中的列表中。

代码语言:javascript
复制
       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 as:的文件中得到的输出

  • !!com.example.Assumption column1:'1‘column2: Balwant column3: SPJ column4: rerer column5: null
  • !!com.example.Assumption column1:'‘column2: Vikas column3: RNC column4: erer column5: null
  • !!com.example.Assumption column1:'3‘column2:’column3: PNBE column4: erer 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

对于De-serialization,代码是:

代码语言:javascript
复制
            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,假设column1=,column2=Vikas,column3=RNC,column4=erer,column5=null,假设column1=3,column2=,column3=PNBE,column4=erer,column5=null,假设column1=4,column2=Diwakar,column2=Diwakar,column5=null,,假设,]

我对yaml和struts2很陌生。所以,请回答一个干净的解决方案。如果我在描述需求时弄错了,请纠正我。提前谢谢..。

EN

回答 1

Stack Overflow用户

发布于 2012-12-03 07:14:04

我认为编辑的唯一方法是覆盖现有的yaml。我们需要从网格中获取值,并将ti覆盖到现有的一个。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13512591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档