4

这是我的问题。我有包含以下对的 YAML 文档:

run_ID: 2010_03_31_101

当这个 get 在 org.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159 下划线处被解析时,构造函数返回而不是我真正需要Long 20100331101 的未修改。String "2010_03_31_101"

问题:如何禁用此行为并强制解析器使用 String 构造函数而不是 Long?

4

1 回答 1

6

好的。从他们的邮件列表中得到答案。这里是

嗨,根据规范(http://yaml.org/type/int.html):数字中的任何“_”字符都将被忽略,从而允许大值的可读表示

你有几种方法可以解决它。1) 不要依赖隐式类型,使用引号(单引号或双引号) run_ID: '2010_03_31_101'

2) 关闭整数解析器(就像这里对浮点数所做的那样)链接 1 链接 2

3) 为 int link 3定义自己的模式

请注意,当您开始偏离规范时,其他收件人可能无法解析您的 YAML 文档。使用引号是安全的。

  • 安德烈
于 2010-04-27T18:33:38.557 回答