Parse JSON in C#

  1. Post your JSON in http://json2csharp.com/. Take the resulting classes and merge duplicates, and you get:
    public class AddressComponent
    {
        public string long_name { get; set; }
        public string short_name { get; set; }
        public List<string> types { get; set; }
    }
    
    public class Bounds
    {
        public Location northeast { get; set; }
        public Location southwest { get; set; }
    }
    
    public class Location
    {
        public double lat { get; set; }
        public double lng { get; set; }
    }
    
    public class Geometry
    {
        public Bounds bounds { get; set; }
        public Location location { get; set; }
        public string location_type { get; set; }
        public Bounds viewport { get; set; }
    }
    
    public class Result
    {
        public List<AddressComponent> address_components { get; set; }
        public string formatted_address { get; set; }
        public Geometry geometry { get; set; }
        public bool partial_match { get; set; }
        public List<string> types { get; set; }
    }
    
    public class RootObject
    {
        public List<Result> results { get; set; }
        public string status { get; set; }
    }
  2. Deserialize your JSON with Json.NET like so:
        var root = JsonConvert.DeserializeObject<RootObject>(result);
  3. There are multiple results returned for your query, so you need to loop through the locations returned like so:
        foreach (var singleResult in root.results)
        {
            var location = singleResult.geometry.location;
            var latitude = location.lat;
            var longitude = location.lng;
            // Do whatever you want with them.
        }