我目前正在使用JSON Simple库在我的应用程序中解析JSON。我在解析时遇到了一个问题,即抛出以下错误:
java.lang.NumberFormatException: For input string: "107701583138930170002"
我已经把它缩小到我认为的问题,这个数字很大,是一个LONG类型。问题是我无法控制这个数字,否则我会把它变成一个字符串。有没有办法让JSON Simple将其解析为BigInt而不是LONG?
答案 0 :(得分:0)
从Google Code下载的json-simple软件包自2009年以来似乎没有更新过。如果查看github,2011年11月有一项提交,会增加对{{1}以外的数字的支持范围。
您可能必须从github获取源代码并构建更新版本的库。看起来json-simple没有被维护。
答案 1 :(得分:0)
如果您正在使用Json Simple的流式解析器,您实际上可以使用带有jackson的json简单ContentHandler而且相对较少。我为我的jsonj项目做了这个:https://github.com/jillesvangurp/jsonj/blob/master/src/main/java/com/github/jsonj/tools/JsonParserNg.java,它是使用jackson而不是jsonsimple来驱动json简单处理程序的同一个包中的JsonParser.java的替代。
jackson解析器支持BigInteger。上面链接的类中的键方法只是在switch语句中调用适当的jsonsimple处理程序方法。在我调用parser.getLongValue()的地方,您可以改为调用parser.getBigIntegerValue()