下面是我试过的代码:
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));
}
但是我得到这个错误:
. lang。IllegalArgumentException: NaN不是一个有效的双精度值。要覆盖此行为,使用GsonBuilder.serializeSpecialDoubleValues()方法。
无法找到排序方法
您尝试使用GsonBuilder.serializeSpecialFloatingPointValues()
了吗?这个例外提到了serializeSpecialDoubleValues()
,它似乎不存在。
JavaDoc声明:
JSON规范的2.4节禁止使用特殊的双精度值(NaN, Infinity, -Infinity)。然而,Javascript规范(见4.3.20,4.3.22,4.3.23节)允许这些值作为有效的Javascript值。此外,大多数JavaScript引擎将毫无问题地接受JSON中的这些特殊值。因此,在实际层面上,接受这些值作为有效的JSON是有意义的,即使JSON规范不允许它们。