Podes probar de esta manera:
Código Delphi
[-]
uses
System.IOUtils,
System.JSON,
System.SysUtils;
procedure DoIt;
var
json, geometry, location: TJSONObject;
results: TJSONArray;
lat, lng: TJSONNumber;
I: Integer;
begin
json := TJSONObject.ParseJSONValue(TFile.ReadAllText(JsonFile)) as TJSONObject;
try
results := json.Values['results'] as TJSONArray;
geometry := results.Items[0].GetValue('geometry');
location := geometry.Values['location'] as TJSONObject;
lat := location.Values['lat'] as TJSONNumber;
lng := location.Values['lng'] as TJSONNumber;
Writeln(lat.ToString);
Writeln(lng.ToString);
finally
json.Free;
end;
end;
Tene en cuenta que no hago ninguna validacion sobre la estructura del json, y asumo que el primer elemento del array "results" es el "geometry"