2010-04-27 2 views
3

Voici mon problème. Je YAML doc qui contient la paire suivante:SnakeYAML: Comment désactiver le dénudage de soulignement lors de l'analyse?

run_ID: 2010_03_31_101

Quand est-ce ce get à analysable org.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159 des underscores et retourne se dépouilla Constructor Long 20100331101 au lieu de String "2010_03_31_101" non modifiée que j'ai vraiment besoin.

QUESTION: Comment puis-je désactiver ce comportement et forcer l'analyseur à utiliser le constructeur de chaîne au lieu de Long?

Répondre

5

OK. Vous avez répondu à leur liste de diffusion. Ici, il est

Salut, selon la spécification (http://yaml.org/type/int.html): Tout « _ » caractères du numéro sont ignorés, ce qui permet une représentation lisible de grandes valeurs

Vous avez quelques façons pour le résoudre. 1) ne pas compter sur les types implicites, utilisez des guillemets (simple ou double) run_ID: '2010_03_31_101'

2) Désactiver résolveur pour les entiers (comme il est fait ici pour les flotteurs) link 1link 2

3) Définissez votre propre modèle pour int link 3

S'il vous plaît être conscient que lorsque vous commencez à dévient de la spécification d'autres destinataires peuvent échouer pour analyser votre document YAML. L'utilisation de guillemets est sûre.

  • Andrey
Questions connexes