当前位置: 首页 > 知识库问答 >
问题:

使用snakeYaml更新yaml文件中的值

傅朗
2023-03-14

是否有任何方法可以使用java编辑/删除YAMLfile中的值。

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

我经历过http://code.google.com/p/snakeyaml/wiki/Documentation#Dumping_YAML在我读到的链接中,我们可以使用模板处理器和其他选项,比如定义JavaBean属性的顺序、注释,以简化yaml。但这些对我来说毫无意义。

下面是我的代码,用于序列化名为“假设”的对象列表。在网格html" target="_blank">模型中。加上(假设);,我将类假设(带有约束和设置器的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 as:

  • !!通用域名格式。实例假设列1:“1”列2:Balwant列3:SPJ列4:Reer列5: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);

控制台的输出为:

数据:[假设[column1=1,column2=Balwant,column3=SPJ,column4=Reer,column5=null],假设[column1=,column2=Vikas,column3=RNC,column4=erer,column5=null],假设[column1=3,column2=,column3=erer,column5=null],假设[column1=4,column2=Diwakar,column3=BGP,column4=Reer,column5=null],假设[column1=5,column2=Ajay,column3=Godda,column4=,column5=null]]

我是yaml和struts2的新手。所以,请回答一个干净的解决方案。如果我在描述需求时出错,请纠正我。提前谢谢。。。

共有1个答案

耿学义
2023-03-14

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

 类似资料:
  • 我试图将上面的文件加载到一个映射中,实体部分下的数据将映射到实体对象的集合。当我得到yaml解析器错误时,这是正确的yaml语法吗。

  • 考虑以下代码: 我唯一发现的是: dump(Object data)方法接受Java对象并生成YAML文档 和 是只有我一个人,还是文档感觉非常神秘和指定?其中一半是关于我甚至从未听说过的特殊应用。我只看着它就觉得自己很傻,这让我有点生气。 不管怎样;如果你能给我任何帮助,我将不胜感激。

  • 我在这方面遇到了很多麻烦。我定义了构造函数,我可以让它导入一个文档,但不是两个。我得到的错误是: 有了一个include,Snakeyaml很高兴找到一个EOF并处理导入。有了两个,就不开心了(上图)。 我的java源代码是: 问题是,有没有人对蛇蟹做过类似的事情?有没有想过我做错了什么?

  • 文档中只有嵌套在其他对象中的映射/集合的示例,因此您可以执行以下操作: 但是,当地图格式位于文档的根目录时,如何定义它呢?

  • 所以我和蛇怪打过交道。我知道如何使用返回字符串和对象的hashmap。为了演示,我有一个包含值的yaml文件: 当我使用

  • 问题内容: 我想将YAML文档读取到自定义对象的映射(而不是map,默认情况下snakeYaml会这样做)。所以这: 将被加载到如下所示的地图中: 其中项目是: 我找不到使用snakeYaml做到这一点的方法,也找不到适合该任务的更好的库。 该文档仅包含将地图/集合嵌套在其他对象中的示例,因此您可以执行以下操作: 但是,当地图格式位于文档的根目录时,该如何定义呢? 问题答案: 您需要添加一个自定义