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

Yaml使用SnakeYaml

颛孙信厚
2023-03-14
---
university: scsb
country: us

Entities:
 !Entity 
   name: john
   subjects:
    -math
    -English
    -C++
 !Entity
   name: mary
   subjects:
    -science
    -French

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

共有1个答案

景安翔
2023-03-14

我在以下方面更幸运:

---
university: scsb
country: us

Entities: {
 !Entity {
   name: john,
   subjects:
    -math
    -English
    -C++
 },
 !Entity {
   name: mary,
   subjects:
    -science
    -French
 }
}

下面是一个将自定义标记(!dice)与SnakeYAML一起使用的示例。这里是完整的例子。它来自SnakeYAML文档。

class DiceConstructor extends SafeConstructor {
    public DiceConstructor() {
        this.yamlConstructors.put(new Tag("!dice"), new ConstructDice());
    }

    private class ConstructDice extends AbstractConstruct {
        public Object construct(Node node) {
            String val = (String) constructScalar((ScalarNode) node);
            int position = val.indexOf('d');
            Integer a = new Integer(val.substring(0, position));
            Integer b = new Integer(val.substring(position + 1));
            return new Dice(a, b);
        }
    }
}


@SuppressWarnings("unchecked")
public void testConstructor() {
    Yaml yaml = new Yaml(new DiceConstructor());
    Object data = yaml.load("{initial hit points: !dice '8d4'}");
    Map<String, Dice> map = (Map<String, Dice>) data;
    assertEquals(new Dice(8, 4), map.get("initial hit points"));
}
 类似资料:
  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> <!-- 使用

  • 引入 Maven 依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>shardingsphere-jdbc-core</artifactId> <version>${shardingsphere.version}</version> </dependency> 规则配置 Sha

  • 我会用这样的方法来利用这些价值: 但是,我最终出现了一个错误,如下所示: 我如何在我的测试中也利用YAML的优点?

  • 本文向大家介绍symfony3 使用YAML进行路由,包括了symfony3 使用YAML进行路由的使用技巧和注意事项,需要的朋友参考一下 示例 路由配置包含在您的app/config/config.yml文件中,默认情况下是该app/config/routing.yml文件。 从那里,您可以链接到捆绑包中的自己的路由配置 它还可能包含多个应用程序全局路由。 您可以在自己的捆绑包中配置路由,该路由

  • 但是房产没有被选中。例如,下面的代码创建一个${log-path}文件夹来存储日志文件,而不是所需的logs文件夹。 我做错了什么?

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