Java JSONObject get children

I think you need to cast the call to json.get("results") to a JSONArray.

I.e.

String coordinates = //JSON from google

JSONObject json = (JSONObject)new JSONParser().parse(coordinates);

JSONArray results = (JSONArray) json.get("results");

JSONObject resultObject = (JSONObject) results.get(0);

JSONObject location = (JSONObject) resultObject.get("location");

String lat = location.get("lat").toString();

String lng = location.get("lng").toString()

The trick is to look at what type the part of the json you're deserializing is and cast it to the appropriate type.