This project has moved and is read-only. For the latest updates, please go here.

Deserializing Google Maps geocode

Jan 14, 2009 at 10:14 PM
Edited Jan 15, 2009 at 2:48 AM

I'm trying to deserialize the Google Maps geocoding JSON (

I tried creating a class and just running serializer.Deserialize but it gave me this error: "Could not find member 'Status' on object of type 'RuntimeType'" 

I then tried to load it into a JObject as suggested in but that seems a little tedious. 

Is there an easier/more automatic way to do this? 

Jan 15, 2009 at 2:43 AM
Edited Jan 19, 2009 at 8:28 PM
Nevermind.  I was able to do it using JavaScriptSerializer.  

My code is below:

    WebClient client = new WebClient();
    String json = client.DownloadString(apiUrl);
    JavaScriptSerializer serializer = new JavaScriptSerializer();
    GoogleMapGeocoderStructure jsonGoogleMapGeocoder = serializer.Deserialize<GoogleMapGeocoderStructure>(json);

    public class GoogleMapGeocoderStructure
        public string Name;
        public Status Status;
        public List<Placemark> Placemark;

    public class Status
        public string Request;
        public string Code;

    public class Placemark
        public string Address;
        public AddressDetails AddressDetails;
        public Point Point;

    public class AddressDetails
        public int Accuracy;
        public Country Country;

    public class Country
        public string CountryNameCode;
        public AdministrativeArea AdministrativeArea;

    public class AdministrativeArea
        public string AdministrativeAreaName;
        public SubAdministrativeArea SubAdministrativeArea;

    public class SubAdministrativeArea
        public string SubAdministrativeAreaName;
        public Locality Locality;

    public class Locality
        public string LocalityName;
        public Thoroughfare Thoroughfare;
        public PostalCode PostalCode;

    public class Thoroughfare
        public string ThoroughfareName;

    public class PostalCode
        public string PostalCodeNumber;

    public class Point
        public List<decimal> Coordinates;

Jan 15, 2009 at 8:42 AM
This will work for you:

JsonConvert.DeserializeObject<GoogleMapGeocoderStructure>(json, new JsonSerializerSettings { MissingMemberHandling = MissingMemberHandling.Ignore });