如何使用Gson将oracle SDO_GEOMETRY对象转换为geoJson?

时间:2011-10-28 08:03:39

标签: java gson

这是我尝试过的代码:

 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.

无法找到解决方法。

1 个答案:

答案 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接受也是有意义的。