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)

上面代码的结果是 421 而不是 645。我知道这个数字被解释为八进制。无论如何指定忽略前导零并将其解释为小数?

我可以有一个预处理步骤,在将前导零传递给 slurper 之前删除它,但想看看是否有更优雅的解决方案。

我正在使用 grails 1.3.7。

4

1 回答 1

0

传递引用的数字。您所看到的是 groovy 将该值强制为 String 值的行为。

展示,尝试

String number = "000645"

对比

String number = 000645

在常规控制台中。(你的 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 回答