2011-10-28 15 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のように述べている:(rs.next()){ \t \t GsonBuilder gsonBuilder =新しいGsonBuilder()場合 :

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は... ...私の作業コードは本当に役に立ちました。 serializeSpecialFloatingPointValues(); \t \t 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

関連する問題