1
String number = "{'number':000645}"
net.sf.json.groovy.JsonSlurper slurper = new net.sf.json.groovy.JsonSlurper()
def resource = slurper.parseText(number)
System.out.println(resource.number)

上記のコードの結果は、645ではなく421です。数値が8進数として解釈されていることはわかっています。先行ゼロを無視して小数として解釈するように指定する方法はありますか?

先行ゼロをスラーパーに渡す前に削除する前処理ステップを実行することもできますが、より洗練されたソリューションがあるかどうかを確認したいと思いました。

私はgrails1.3.7を使用しています。

4

1 に答える 1

0

引用された番号を渡します。あなたが見ているのは、その値を文字列値に強制する際のgroovyの動作です。

実証する、試してみる

String number = "000645"

対。

String number = 000645

Groovy コンソールで。(何が起こっているのかを追跡したい場合は、slurper のソースがここにあります: http://grepcode.com/file/repo1.maven.org/maven2/net.sf.json-lib/json-lib/2.4 /net/sf/json/groovy/JsonSlurper.java )

于 2012-11-07T00:59:57.953 に答える