Analysieren von Google Places-JSON-Daten in Android?
Ich versuche, Google Places-JSON-Daten in Android zu analysieren. Ich kenne die URL, die ich in Arbeiten übergebe (aber ich nahm meinen Schlüssel aus dem folgenden Code). Ich kann die JSON-Daten in einer Textansicht anzeigen lassen, aber jetzt möchte ich sie analysieren und (zu diesem Zeitpunkt) den Namen des ersten anzuzeigenden Elements ermitteln. Ich habe ein Tutorial geändert, das einen Twitter-Feed analysiert hat, und dieses Twittwr-Tutorial wurde korrekt angezeigt, aber mein geänderter Code zeigt nichts an. Es stürzt nicht ab und ich bekomme keine Fehler, also weiß ich nicht, was los ist. Also hier ist mein Code:
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;
}
}
}
Kann jemand sehen, wo der Code fehlschlägt oder wo ich einen Fehler gemacht habe?