4

これが私の問題です。次のペアを含む YAML ドキュメントがあります。

run_ID: 2010_03_31_101

これがアンダースコアで解析される と、取り除かれ、実際に必要な 未変更の代わりにorg.yaml.snakeyaml.constructor.SafeConstructor.ConstructYamlInt:159 コンストラクターが返されます。Long 20100331101String "2010_03_31_101"

質問: この動作を無効にして、パーサーに Long の代わりに String コンストラクターを使用させるにはどうすればよいですか?

4

1 に答える 1

6

わかった。彼らのメーリングリストから回答を得ました。ここにあります

こんにちは、仕様 ( http://yaml.org/type/int.html ) によると: 数値内の「_」文字は無視されるため、大きな値の読み取り可能な表現が可能になります。

それを解決するにはいくつかの方法があります。1) 暗黙の型に依存せず、引用符 (一重または二重) を使用してください。 run_ID: '2010_03_31_101'

2) 整数のリゾルバーをオフにします (ここでは浮動小数点数に対して行われているように) link 1 link 2

3) int リンク 3の独自のパターンを定義する

仕様から逸脱し始めると、他の受信者が YAML ドキュメントの解析に失敗する可能性があることに注意してください。引用符の使用は安全です。

  • アンドレイ
于 2010-04-27T18:33:38.557 に答える