java对象转json字符串报错:
net.sf.json.JSONException: JSON does not allow non-finite numbers
at net.sf.json.util.JSONUtils.testValidity(JSONUtils.java:597) ~[json-lib-jdk15-2.4.jar:na]
at net.sf.json.AbstractJSON._processValue(AbstractJSON.java:269) ~[json-lib-jdk15-2.4.jar:na]
at net.sf.json.JSONObject._processValue(JSONObject.java:2655) ~[json-lib-jdk15-2.4.jar:na]
原因及解决办法:
Double类型数据为isInfinite()或者isNaN()无法转成JSON字符串,
解决办法
方式一:既然不支持Double类型的值NaN与INFINITY的转换,可以在转换之前把值处理一下。
方式二:通过JsonValueProcessor在转换过程中处理:


日期格式化处理已经在截图中有了,方式和处理Double对象类似

探讨了在Java中将对象转换为JSON字符串时遇到的JSONException,详细分析了错误原因,即Double类型数据的特殊值(如NaN和Infinity)无法直接转换。提供了两种解决方案:一是预处理数据,二是使用JsonValueProcessor进行转换过程中的处理。
1万+

被折叠的 条评论
为什么被折叠?



