SnakeYAML: Как отключить разбор подчеркивания при разборе?
Вот моя проблема. У меня есть документ YAML, который содержит следующую пару:
run_ID: 2010_03_31_101
Когда это будет проанализировано вorg.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159
подчеркивания удаляются и конструктор возвращается Long 20100331101
вместо неизмененного String "2010_03_31_101"
что мне действительно нужно.
ВОПРОС: Как я могу отключить это поведение и заставить синтаксический анализатор использовать конструктор String вместо Long?
1 ответ
ХОРОШО. Получил ответ от своего списка рассылки. Вот
Привет, в соответствии со спецификацией ( http://yaml.org/type/int.html): любые символы "_" в числе игнорируются, что позволяет читаемое представление больших значений
У вас есть несколько способов решить это. 1) не полагайтесь на неявные типы, используйте кавычки (одинарные или двойные) run_ID: '2010_03_31_101'
2) Отключить распознаватель для целых чисел (как это делается здесь для чисел с плавающей запятой) ссылка 1 ссылка 2
3) Определите свой собственный шаблон для ссылки INT 3
Помните, что когда вы начинаете отклоняться от спецификации, другие получатели могут не проанализировать ваш документ YAML. Использование кавычек безопасно.
- Андрей