Парсинг данных Google JSON в Android?
Я пытаюсь проанализировать данные Google Places JSON в Android. Я знаю, что URL, который я передаю, работает (но я вынул свой ключ из приведенного ниже кода). Я могу получить данные JSON для отображения в TextView, но теперь я хочу проанализировать их и получить (на данный момент) имя первого элемента для отображения. Я изменил учебник, который анализировал канал Twitter, и этот учебник twittwr отображался правильно, но мой измененный код ничего не отображает. Это не приводит к сбою, и я не получаю никаких ошибок, поэтому я не знаю, в чем дело. Так вот мой код:
public class GetPort extends Activity {
TextView showJSdata;
HttpClient client;
JSONObject json;
final static String pURL = "https://maps.googleapis.com/maps/api/place/search/json? location=30.487263,-97.970799&radius=25000&types=airport&sensor=false&key=MY_KEY";
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.mn_test3);
showJSdata = (TextView)findViewById(R.id.http_tv);
client = new DefaultHttpClient();
new ReadURL().execute("name");
}
public JSONObject showPorts()
throws ClientProtocolException, IOException, JSONException{
StringBuilder portURL = new StringBuilder(pURL);
HttpGet get = new HttpGet(portURL.toString());
HttpResponse r = client.execute(get);
int status = r.getStatusLine().getStatusCode();
if(status == 200){
HttpEntity e = r.getEntity();
String data = EntityUtils.toString(e);
JSONArray timeline = new JSONArray(data);
JSONObject lastport = timeline.getJSONObject(0);
return lastport;
}else{
Toast.makeText(GetPort.this, "oops", Toast.LENGTH_SHORT);
return null;
}
}
public class ReadURL extends AsyncTask<String, Integer, String>{
@Override
protected void onPostExecute(String result) {
showJSdata.setText(result);
}
@Override
protected String doInBackground(String... params) {
try {
json = showPorts();
return json.getString(params[0]);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
}
Кто-нибудь может увидеть, где код не работает, или где я ошибся?