找到“net.sf.json.JSONException:JSON不允许非有限数字”的根本原因

时间:2011-12-06 10:53:46

标签: java json apache-wink

我正在创建一个在json中编码的相对复杂和大型的结构,以发送到Web服务。我使用普通的java和Apache Wink for JSON。大多数请求都顺利但在一个特定情况下我收到以下错误:

net.sf.json.JSONException: JSON does not allow non-finite numbers
at net.sf.json.util.JSONUtils.testValidity(JSONUtils.java:586)
at net.sf.json.JSONObject._processValue(JSONObject.java:2786)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2817)
at net.sf.json.JSONObject.setValue(JSONObject.java:1527)
at net.sf.json.JSONObject._fromBean(JSONObject.java:946)
at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
at net.sf.json.JSONArray._processValue(JSONArray.java:2562)
at net.sf.json.JSONArray.processValue(JSONArray.java:2593)
at net.sf.json.JSONArray.addValue(JSONArray.java:2580)
at net.sf.json.JSONArray._fromCollection(JSONArray.java:1084)
at net.sf.json.JSONArray.fromObject(JSONArray.java:147)
at net.sf.json.JSONObject._processValue(JSONObject.java:2768)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2817)
at net.sf.json.JSONObject.setValue(JSONObject.java:1527)
at net.sf.json.JSONObject._fromBean(JSONObject.java:946)
at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
at net.sf.json.JSONArray._processValue(JSONArray.java:2562)
at net.sf.json.JSONArray.processValue(JSONArray.java:2593)
at net.sf.json.JSONArray.addValue(JSONArray.java:2580)
at net.sf.json.JSONArray._fromCollection(JSONArray.java:1084)
at net.sf.json.JSONArray.fromObject(JSONArray.java:147)
at net.sf.json.JSONObject._processValue(JSONObject.java:2768)
at net.sf.json.JSONObject._setInternal(JSONObject.java:2817)
at net.sf.json.JSONObject.setValue(JSONObject.java:1527)
at net.sf.json.JSONObject._fromBean(JSONObject.java:946)
at net.sf.json.JSONObject.fromObject(JSONObject.java:194)
at net.sf.json.JSONObject.fromObject(JSONObject.java:156)
at com.ibm.arc.sdm2pmp.wsclient.WSClient.createStaffingPlan(WSClient.java:693)
at com.ibm.arc.sdm2pmp.wsclient.WSClient.sendToPMP(WSClient.java:174)
at com.ibm.arc.sdm2pmp.Gateway.processCase(Gateway.java:129)
at com.ibm.arc.sdm2pmp.Gateway.main(Gateway.java:283)

我一次编码整个结构(大约10 MB),我有一个问题,找出导致这个奇怪异常的原因。我正在网上搜索,但无法超越显而易见的。 (不要发送非有限数字)。

你知道如何最好地调试这个以及通常会导致它的原因吗?

非常感谢您的帮助。

的Heiko

2 个答案:

答案 0 :(得分:3)

您可能尝试表示Double.POSITIVE_INFINITY或其他非限定数字的值,这是JSON规范不允许的。

答案 1 :(得分:0)

在我的类似情况下,我有一个有限数除以零,这导致了无限数。检查你的计算。

相关问题