有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java超长。JSON简单解析器中的最大值

我目前正在使用JSON Simple库在我的应用程序中解析JSON。我在解析时遇到了一个问题,导致以下错误:

java.lang.NumberFormatException: For input string: "107701583138930170002"

我已经把范围缩小到了我认为是问题的地方,这个数字太大了,太长了。问题是我不能控制这个数字,否则我会把它变成一个字符串。有没有办法让JSON简单地将其解析为BigInt而不是LONG


共 (2) 个答案

  1. # 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. # 2 楼答案

    可从谷歌代码下载的json简单包似乎自2009年以来就没有更新过。如果你看一下github,2011年11月有一次提交,增加了对Long范围之外的数字的支持

    您可能需要从github获取源代码,并构建一个更新版本的库。看起来没有维护json simple