2013-06-14 2 views
0

왜 다음 코드는 "{"즉 JSON 문자열의 시작과 전체 JSON의 시작 만 리턴하나요? 브라우저에 URL을 입력하면 완성 된 JSON이 반환됩니다. 응답을 버퍼링하려고했지만 아무 것도 작동하지 않는 것 같습니다. 왜 그 이유를 설명 할 수 있습니까?Google 장소 및 자동 완성 Edittext

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet httpget = new HttpGet("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Nasik%20&types=geocode&language=en&sensor=true&key=API-KEY"); 
HttpResponse response = httpclient.execute(httpget); 
InputStream is = response.getEntity().getContent(); 
BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
Toast.makeText(this, br.readLine(), Toast.LENGTH_LONG).show();  

답변

1

이 방법을 사용해보십시오.

try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     Log.d("Json Output",sb.toString()); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

업데이트 : 당신은 각 라인을 읽을 필요가

, 현재 당신이 첫 번째 줄을 읽으려고합니다.

1

br.readline() 함수를 사용하고 있습니다. 함수 이름에서 알 수 있듯이 한 줄만 읽습니다. 그것을 완전히 파싱하려면 다음과 같이하십시오 :

StringBuilder sb = new StringBuilder(); 
String line = null; 
while ((line = br.readLine()) != null) { 
    sb.append(line + "\n"); 
} 
Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show(); 
관련 문제