这是我的问题。我有包含以下对的 YAML 文档:
run_ID: 2010_03_31_101
当这个 get 在
org.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159
下划线处被解析时,构造函数返回而不是我真正需要Long 20100331101
的未修改。String "2010_03_31_101"
问题:如何禁用此行为并强制解析器使用 String 构造函数而不是 Long?
好的。从他们的邮件列表中得到答案。这里是
嗨,根据规范(http://yaml.org/type/int.html):数字中的任何“_”字符都将被忽略,从而允许大值的可读表示
你有几种方法可以解决它。1) 不要依赖隐式类型,使用引号(单引号或双引号) run_ID: '2010_03_31_101'
2) 关闭整数解析器(就像这里对浮点数所做的那样)链接 1 链接 2
3) 为 int link 3定义自己的模式
请注意,当您开始偏离规范时,其他收件人可能无法解析您的 YAML 文档。使用引号是安全的。
- 安德烈