Edit: Hab die Birne ordentlich zum Rauchen gebracht und nun hab ich es selbst geschafft:
Falls es jemand interessiert:
public void onResponse(JSONObject response) {
Log.d("TAG",URL);
try {
JSONArray jsonArray = response.getJSONArray("results");
for(int i = 0; i < jsonArray.length(); i++){
JSONObject jsonObject = jsonArray.getJSONObject(i);
JSONObject ID = jsonObject.getJSONObject("geometry");
JSONObject location = ID.getJSONObject("location");
String lat = location.getString("lat");
String lng = location.getString("lng");
Log.d("TAG","Latitude: " + lat + " Longtitude; " + lng);
}
} catch (JSONException e) {
e.printStackTrace();
}
Alles anzeigen
Hey
Bin mal wieder an einem Thema, bei dem ich fast resignieren könnte, bin echt kein JSON Fan,
weil es mir einfach nicht in den Kopf gehen möchte wie das funktioniert, obwohl gefühlt schon tausend
Tutorials angeschaut.
Aber ich bin eh ein Mensch, der beim Machen lernt, deswegen erhoffe ich auf Erhellung
Also ich habe folgenden JSON Request:
public void getAddress(String address, final AdressCallback adressCallback) throws UnsupportedEncodingException {
String URLparse = URLEncoder.encode(address,"utf-8");
final String URL = "https://maps.googleapis.com/maps/api/geocode/json?address="+URLparse+"&key=mein Api key ";
Log.d("maps",URL);
RequestQueue requestQueue = Volley.newRequestQueue(context);
final JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.GET, URL, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
Log.d("TAG",URL);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonObjectRequest);
}
Alles anzeigen
Nun bei einem einfachen Request von meinem Server bekomme ich das hin, da die Daten nicht so verschachtelt sind, aber bei beim request von Google komme ich einfach nicht weiter als dass ich nur den Städtenamen bekomme, aber nicht an die Info von Longtitude und Latitude.
Also ich hab die Antwort von Google:
{
"results" : [
{
"address_components" : [
{
"long_name" : "66",
"short_name" : "66",
"types" : [ "street_number" ]
},
{
"long_name" : "Feurigstraße",
"short_name" : "Feurigstraße",
"types" : [ "route" ]
},
{
"long_name" : "Bezirk Tempelhof-Schöneberg",
"short_name" : "Bezirk Tempelhof-Schöneberg",
"types" : [ "political", "sublocality", "sublocality_level_1" ]
},
{
"long_name" : "Berlin",
"short_name" : "Berlin",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Berlin",
"short_name" : "Berlin",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Deutschland",
"short_name" : "DE",
"types" : [ "country", "political" ]
},
{
"long_name" : "10827",
"short_name" : "10827",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Feurigstraße 66, 10827 Berlin, Deutschland",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 52.48585629999999,
"lng" : 13.3594682
},
"southwest" : {
"lat" : 52.48540120000001,
"lng" : 13.359251
}
},
"location" : {
"lat" : 52.4856287,
"lng" : 13.3593596
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 52.4869777302915,
"lng" : 13.3607085802915
},
"southwest" : {
"lat" : 52.48427976970851,
"lng" : 13.3580106197085
}
}
},
"place_id" : "ChIJC5_anD9QqEcRHGrKfh8js28",
"types" : [ "premise" ]
}
],
"status" : "OK"
}
Alles anzeigen
Und ich möchte gerne die lat und lng haben.
Aber ich weiß nicht wie ich an die Verschachtelten daten komme.
Könnt ihr mir helfen?
Danke und grüße aus Berlin