1

我運行一個谷歌Places API的我收到的響應是JSON格式我也檢查了在JSON觀衆,JsonParseException:本JsonDeserializer com.google.gson.DefaultTypeAdapters同時運行谷歌Places API的

{ 
    "html_attributions" : [], 
    "next_page_token" : "CvQB7AAAAKcVCYUk92u8YbCxucwIYZZoVsNOAX1utAinxpRnjirhCWRGYI1ozjaw-9JauOVcr8iOqsvGVR3n183oJ-saMliylmFcPdJ8HwhIpxwWr8EsXDuTk4SCIYfSfcpSflBaWMqorPnNHAVMz9HS3r4q8Hq-UUobHHfD8HZ4auX9eOzVHETQezM0eT8164h1qsRChdvzEQdsxu1nze6c3GI6xO_PByuSeI8tksFlrPm2P45cZda-_qpQlmn_ksZiCzTRnpPGYG0U7AgtpoiUK85WTAX5CkH7jFpjYFap6LSSv33ujQtFFk52CECLu_iudN78IhIQri7z9TjtM4StCVCRS0Do6RoUrMm6kpd4rUbKD7LkTqbq3o7DOZU", 
    "results" : [ 
     { 
     "geometry" : { 
      "location" : { 
       "lat" : -33.8599827, 
       "lng" : 151.2021282 
      }, 
      "viewport" : { 
       "northeast" : { 
        "lat" : -33.8552624, 
        "lng" : 151.2031401 
       }, 
       "southwest" : { 
        "lat" : -33.8657895, 
        "lng" : 151.200
       } 
      } 
     }, 
     "icon" : "http://maps.gstatic.com/mapfiles/place_api/icons/geocode-71.png", 
     "id" : "92f1bbd4ecab8e9add032bccee40a57a8dfd42b4", 
     "name" : "Barangaroo", 
     "place_id" : "ChIJ1ZL9NkGuEmsRUEkzFmh9AQU", 
     "reference" : "CpQBhQAAAE4kOaitGfNEGHyhPnHMiP5NVmC9UsUYoYyOtBcO7zKBMNHR07V90Ohq6AV8qEWIAy0xpMvzlEimcdzW0KwdtCbUpWYKXFhby57oPCCUbMiIy_9yxPhtmnzcWFOMZqWWUnVxpYOW6hHR_JbLUbFRPZCSYqMJ9VL6xpxAbjulKVJFmJP4enq7MyeMe8rO0lJRCRIQelNwAky9wPZz9iyjcT7-UhoUGMbpbFWZZeZDjpOxJyipeWTTRxk", 
     "scope" : "GOOGLE", 
     "types" : [ "locality", "political" ], 
     "vicinity" : "Barangaroo" 
     }] 
} 

我以這種方式使用了模型 1.GooglePlacesModel是包含列表結果的主要模型;和 2.PlacesMainModel包含List幾何;再次子模型我用按需要 現在即時通訊能夠接收字符串字段在結果陣列,如姓名,圖標,但中號未能receice幾何領域,如位置 我碰到下面的堆棧跟蹤

GooglePlacesModel plcModel = gson.fromJson(resultedPLaces, GooglePlacesModel.class); 
where resultedPLaces is the json string as it is above, 




googleapis.com:443][total kept alive: 1; route allocated: 1 of 2; total allocated: 1 of 20] 
    com.google.gson.JsonParseException: The JsonDeserializer [email protected]e9 failed to deserialized json object {"geometry":{"location":{"lat":-33.8599827,"lng":151.2021282}}} given the type [email protected] 
     at com.google.gson.JsonDeserializerExceptionWrapper.deserialize(JsonDeserializerExceptionWrapper.java:63) 
     at com.google.gson.JsonDeserializationVisitor.invokeCustomDeserializer(JsonDeserializationVisitor.java:88) 
     at com.google.gson.JsonObjectDeserializationVisitor.visitFieldUsingCustomHandler(JsonObjectDeserializationVisitor.java:116) 
     at com.google.gson.ObjectNavigator.navigateClassFields(ObjectNavigator.java:158) 
     at com.google.gson.ObjectNavigator.accept(ObjectNavigator.java:131) 
     at com.google.gson.JsonDeserializationContextDefault.fromJsonObject(JsonDeserializationContextDefault.java:73) 
     at com.google.gson.JsonDeserializationContextDefault.deserialize(JsonDeserializationContextDefault.java:51) 
     at com.google.gson.Gson.fromJson(Gson.java:568) 
     at com.google.gson.Gson.fromJson(Gson.java:515) 
     at com.google.gson.Gson.fromJson(Gson.java:484) 
     at com.google.gson.Gson.fromJson(Gson.java:434) 
     at com.google.gson.Gson.fromJson(Gson.java:406) 
     at com.webapp.actions.api.places.NearByPlacesAction.getNrByPlaces(NearByPlacesAction.java:88) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
     at java.lang.reflect.Method.invoke(Method.java:601) 
     at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) 
     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:140) 
     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:158) 
     at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:152) 
     at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:101) 

回答

0

2來了。 PlacesMainModel包含List幾何體;

幾何不是JSONArray,所以你不能把它作爲一個簡單的嵌套json對象列表。

製作幾何的另一個模型,並使用它,我的列表幾何。

+0

我在使用幾何的列表,我想使用幾何的對象,所以我得到了正確的結果後。 – Kamini 2014-12-05 07:07:07