Yaml 亚姆林验证
我有一个像这样的Yaml文件Yaml 亚姆林验证,yaml,snakeyaml,Yaml,Snakeyaml,我有一个像这样的Yaml文件 name: hhh_aaa_bbb arguments: - !argument name: inputsss description: hhh aaa bbb required: true - !argument name: lll description: lll required: true - !argument
name: hhh_aaa_bbb
arguments:
- !argument
name: inputsss
description: hhh aaa bbb
required: true
- !argument
name: lll
description: lll
required: true
- !argument
name: ccc
description: ccc
required: true
source:
!!com.abc.bbc.sss
uri: !arg input
但是,当我在中使用Yaml Lint验证此Yaml文件时,它会删除所有“!”或“!!”用户参数。为什么会这样
这是我在验证后从yaml lint获得的输出
---
arguments:
-
description: "hhh aaa bbb"
name: inputsss
required: true
-
description: lll
name: lll
required: true
-
description: ccc
name: ccc
required: true
name: hhh_aaa_bbb
source:
uri: input
Yamlint是一个没有印记或任何其他关于作者、目的和使用的YAML实现的信息的网站。如果没有这些信息,您应该非常小心地信任它的输出 只有作者才能告诉你为什么他们认为放下标签是个好主意。结果YAML与没有标记的输入不等价 您还可以使用其他网站进行在线YAML验证:
- ,YAML引用解析器(YAML 1.2)
- ,它使用PyYaml作为后端(YAML 1.1)
- ,它使用NimYAML作为后端(YAML 1.2)
$ yamllint file.yaml
file.yaml
1:1 warning missing document start "---" (document-start)
1:18 error trailing spaces (trailing-spaces)
4:9 error wrong indentation: expected 6 but found 8 (indentation)
8:9 error wrong indentation: expected 6 but found 8 (indentation)
12:9 error wrong indentation: expected 6 but found 8 (indentation)
17:9 error wrong indentation: expected 4 but found 8 (indentation)
嗨,非常感谢你提供的信息。我没有什么疑问了。我想将带有标记的YAML转换为JSON文件,将JSON转换为带有标记的YAML文件。你能告诉我JSON构造中的标记是什么样的吗?比如,我用你的NIMYAML将问题中提供的相同YAML文件转换成JSON。我得到了一个JSON输出,它排除了标记。我不知道如何在注释中添加代码。但你可以试试我的yaml。我的要求是将JSON转换为带有标记的YAML文件。我现在使用SnakeYAML。我使用Javascript将JSON转换为Yaml。但是我没有得到标签。如何将这些标记从JSON转换为YAML?如果您将JSON转换为YAML,那么您可以自动生成的唯一标记就是来自:
!!空
,!!bool
,!!int
,!!浮动
,!!地图
,!!seq
和!!字符串
,对应于JSON类型(!!int
和!!float
都映射到一个JSON数字)。将JSON粘贴到NimYAML在线工具中,并查看规范输出(这是因为YAML是JSON的超集)。如果您有特定问题,请提出新问题。您的示例不是有效的YAML文件,您的顶级映射以4个空格缩进开始(在name
之前),第二行为零缩进。如果Yamlint接受这一点,您应该远离使用它。我指的是所有三个(YPaste、在线YAML解析器、NimYaml)。是否有其他合适的在线资源指定正确的YAML格式?Yamlint将您的输入减少到单个键值对,在线YAML解析器也是如此。NimyML接受粘贴的数据,就好像第一行没有缩进一样,这样解析器就不可信了。这三个都应该给出一个错误。你最好用一个小python程序来加载YAML,数据的在线解析器是一个安全隐患。NimYAML也不能正确处理八进制数,但假装是YAML 1.2,远离那个。。。