如何使用Gson转换oracle SDO_GEOMETRY对象到geoJson



下面是我试过的代码:

 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规范不允许它们。

相关内容

最新更新