2011-10-28 214 views
1

这里是我试过的代码:如何使用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)); 
} 

但我收到此错误:

java.lang.IllegalArgumentException: NaN is not a valid double value as per JSON specification. To override this behavior, use GsonBuilder.serializeSpecialDoubleValues() method.

无法找到一个方法来梳理出来。

回答

0

您是否尝试过使用GsonBuilder.serializeSpecialFloatingPointValues()?例外情况提到serializeSpecialDoubleValues(),似乎并不存在。

这JavaDoc的状态:

Section 2.4 of JSON specification disallows special double values (NaN, Infinity, -Infinity). However, Javascript specification (see section 4.3.20, 4.3.22, 4.3.23) allows these values as valid Javascript values. Moreover, most JavaScript engines will accept these special values in JSON without problem. So, at a practical level, it makes sense to accept these values as valid JSON even though JSON specification disallows them.

+0

日Thnx ...是真正有用的...我的工作代码: 如果(rs.next()){ \t \t GsonBuilder gsonBuilder =新GsonBuilder()。 serializeSpecialFloatingPointValues(); Gson gson = gsonBuilder.create(); \t \t STRUCT st =(STRUCT)rs.getObject(1); \t \t JGeometry j_geom = JGeometry.load(st); System.out.println(“gson.toJson(j_geom)”+ gson.toJson(j_geom)); \t \t } – Aneer

相关问题