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

如何使用Java验证yaml?如果YAML中缺少一个键?

方兴旺
2023-03-14

在读取yaml时,如果遗漏了一个键,如何验证?用于读取yaml的API是snakeYaml

Yaml yaml = new Yaml(new Constructor(config.class));
InputStream in = Files.newInputStream(filepath);
yaml.load(in);
KEY1:
  innerKey1:
    innerKey2: value1
    innerKey3: value2
  innerKey4:value3
KEY1:
  innerKey1:
    innerKey2: value1
  innerKey4:value3

共有1个答案

徐俊楚
2023-03-14

方法之一是将YAML转换为JSON,然后使用JSON schema validator来验证该JSON。有多个库可以将yaml转换为JSON,请检查此线程将yaml转换为JSON。如何在Java中将YAML转换为JSON?

一旦获得JSON,就可以使用Networklint/Everit等任何JSON模式验证器。

 类似资料:
  • 我有一个从swagger 2.0更新到openapi 3.0.0的yaml规范。 文件本身大约有 7,000 行,因此手动验证具有挑战性。 我需要找出哪些标记不再与openapi 3.0.0兼容。如何验证我的模式?有没有我可以使用的命令行工具? 我不想将此代码复制/粘贴到在线某个地方,因为我不想公开所有路由。

  • 我不明白如何用anaconda3设置我的PYTHONPATH。 我是否缺少安装步骤?

  • 除了手动反编译类,检查它的所有依赖项,以及这些依赖项是否在类路径上,等等,对每个依赖类无限....有没有任何方法可以准确地确定类路径中缺少了哪个类,从而导致Java无法加载我的主类? 另一个问题是缺少父/接口类的问题。但是我已经手动检查了所有祖先类或者在指定的类路径上,或者在JDK中,如下所示。

  • 我一直在网上搜索YAML文件验证chedestyle插件,但没有这样的插件。有许多在线YAML验证工具,如Yamlint,它要求您将yml文件复制到它们并进行验证,但我正在寻找一个插件,它可以在IDE内部实时验证我的所有yml文件。有人能告诉我用java设计这样的插件的方法吗?

  • 我想实现一个功能--使用k8s JSON schema/yaml schema验证Kubernetes部署文件(部署yaml或服务yaml或rc yaml)。 目前,我需要设置kubectl和k8s集群可用,以便验证。但是如果没有这个设置,希望使用Go-Client(K8s)API进行验证。 谁能告诉我是否有任何库,我可以用来验证文件?我如何获得K8s模式。是否有生成模式的工具/库?你能给我指明方

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