2012-11-28 83 views
1

我使用谷歌API的地方,並在分析我使用JSON,但此行谷歌的地方API解析問題

JsonHttpParser parser = new JsonHttpParser(new JacksonFactory()); 
request.addParser(parser); 

已被棄用。有什麼方法可以解決或以其他方式解決?

這裏的功能:

public Placeslist search(double latitude, double longitude, double radius, String types) 
     throws Exception { 

    try { 
     HttpRequestFactory httpRequestFactory = createRequestFactory(HTTP_TRANSPORT); 
     HttpRequest request = httpRequestFactory 
       .buildGetRequest(new GenericUrl(PLACES_SEARCH_URL)); 
     request.getUrl().put("key", API_KEY); 
     request.getUrl().put("location", _latitude + "," + _longitude); 
     request.getUrl().put("radius", _radius); 
     request.getUrl().put("sensor", "false"); 
     if(types != null) 
      request.getUrl().put("types", types); 

     Placeslist list = request.execute().parseAs(Placeslist.class); 
     // Check log cat for places response status 
     Log.d("Places Status", "" + list.status); 
     return list; 
    } catch (HttpResponseException e) { 
     Log.e("Error:", e.getMessage()); 
     return null; 
    } 
} 

// Creating http request Factory 
public static HttpRequestFactory createRequestFactory(
     final HttpTransport transport) { 
    return transport.createRequestFactory(new HttpRequestInitializer() { 
     public void initialize(HttpRequest request) { 
      GoogleHeaders headers = new GoogleHeaders(); 
      headers.setApplicationName("Google-Places-Test"); 
      request.setHeaders(headers); 
      JsonHttpParser parser = new JsonHttpParser(new JacksonFactory()); 
      request.addParser(parser); 
     } 
    }); 
} 
+0

對此有何幫助? – user1115684

回答

5

看來,類JsonHttpParser和方法HttpRequest是在1.11版本都棄用。有關更多信息,請參閱The Deprecated list

所以不是:

JsonHttpParser parser = new JsonHttpParser(new JacksonFactory()); 
request.addParser(parser); 

現在你將有:

JsonObjectParser parser = new JsonObjectParser(new JacksonFactory()); 
request.setParser(parser); 

,改變你的進口:

import com.google.api.client.json.JsonObjectParser; 

編輯:我已經測試了這一點,它適用於我。