【发布时间】:2019-05-16 03:58:23
【问题描述】:
这是我的例子:
class MyController {
def index() {
JSONObject json = request.JSON
log.info('{}', json)
respond json
}
}
如何处理 json 中的 BigInteger?像这样:
curl -H 'content-type: application/json' -d '{"largeNum": 99999999999999999999999}' http://localhost:8080/
JSONObject 会将这个 largeNum 转换为 Double,如下所示:
{"largeNum":9.999999999999999E22}
但我想得到一个 BigInteger,怎么做?
【问题讨论】:
-
我会使用字符串来传输 BigDecimal/Integer,因为 JSON 数字是双倍的。
-
@cfrick:JSON 数字不是双精度数。它们没有限制。
-
@Peter 如果您的生产者/消费者可能使用最坏的情况(双重)并且您最终得到错误的数字,那么您将无济于事。我更喜欢强迫他们屈服于思考问题。
-
@cfrick:是的,没错。我想指出,这是您使用哪个解析器而不是 JSON 本身的问题。