java超长。JSON简单解析器中的最大值
我目前正在使用JSON Simple库在我的应用程序中解析JSON。我在解析时遇到了一个问题,导致以下错误:
java.lang.NumberFormatException: For input string: "107701583138930170002"
我已经把范围缩小到了我认为是问题的地方,这个数字太大了,太长了。问题是我不能控制这个数字,否则我会把它变成一个字符串。有没有办法让JSON简单地将其解析为BigInt而不是LONG
你可以在下面搜索框中键入要查询的问题!
我目前正在使用JSON Simple库在我的应用程序中解析JSON。我在解析时遇到了一个问题,导致以下错误:
java.lang.NumberFormatException: For input string: "107701583138930170002"
我已经把范围缩小到了我认为是问题的地方,这个数字太大了,太长了。问题是我不能控制这个数字,否则我会把它变成一个字符串。有没有办法让JSON简单地将其解析为BigInt而不是LONG
# 1 楼答案
如果您使用的是Json Simple的流式解析器,那么您实际上也可以将Json Simple ContentHandler与jackson一起使用,而且相对来说麻烦不大。我这样做是为了我的jsonj项目:https://github.com/jillesvangurp/jsonj/blob/master/src/main/java/com/github/jsonj/tools/JsonParserNg.java,它是JsonParser的替代品。使用jackson而不是jsonsimple来驱动json简单处理程序的同一个包中的java
jackson解析器支持BigInteger。我上面链接的类中的key方法只是在switch语句中调用适当的jsonsimple处理程序方法。我把它叫做解析器。getLongValue(),则可以调用解析器。getBigIntegerValue()
# 2 楼答案
可从谷歌代码下载的json简单包似乎自2009年以来就没有更新过。如果你看一下github,2011年11月有一次提交,增加了对
Long
范围之外的数字的支持您可能需要从github获取源代码,并构建一个更新版本的库。看起来没有维护json simple