这是我尝试过的代码:
if(rs.next()){
Gson gson = new Gson();
STRUCT st = (STRUCT) rs.getObject(1);
JGeometry j_geom = JGeometry.load(st);
System.out.println(" gson.toJson(j_geom) "+gson.toJson(j_geom));
}
但是我收到了这个错误:
java.lang.IllegalArgumentException: NaN is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialDoubleValues() method.
无法找到解决方法。
答案 0 :(得分:0)
您尝试使用GsonBuilder.serializeSpecialFloatingPointValues()
了吗?例外提到serializeSpecialDoubleValues()
,似乎不存在。
JavaDoc声明:
JSON specification的第2.4节不允许使用特殊的双精度值(NaN,Infinity,-Infinity)。但是,Javascript specification(请参阅第4.3.20节,第4.3.22节,第4.3.23节)允许将这些值作为有效的Javascript值。而且,大多数JavaScript引擎都会在JSON中接受这些特殊值而没有问题。因此,在实际层面上,即使JSON规范不允许将这些值作为有效的JSON接受也是有意义的。