SnakeYAML:解析时如何禁用下划线剥离?

Bos*_*one 3 parsing yaml snakeyaml

这是我的问题.我有YAML文档,其中包含以下对:

run_ID: 2010_03_31_101

当在org.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159 下划线解析这个get 被剥离并且Constructor返回Long 20100331101 而不是未经修改时String "2010_03_31_101"我真正需要.

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

Bos*_*one 5

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

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

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

2)关闭整数的旋转变压器(因为它在这里完成浮动)链接1 链接2

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

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

  • 安德烈