2012-11-28 85 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; 

编辑:我已经测试了这一点,它适用于我。