parse google maps geocode json response to object using Json.Net
C# Object Code I added a few extra classes, not sure if they are new to the API but I thought this might be helpful to someone.
public class GoogleGeoCodeResponse
{
public results[] results { get; set; }
public string status { get; set; }
}
public class results
{
public address_component[] address_components { get; set; }
public string formatted_address { get; set; }
public geometry geometry { get; set; }
public string[] types { get; set; }
}
public class address_component
{
String long_name { get; set; }
String short_name { get; set; }
String types { get; set; }
}
public class geometry
{
public bounds bounds { get; set; }
public location location { get; set; }
public string location_type { get; set; }
public viewport viewport { get; set; }
}
public class location
{
public string lat { get; set; }
public string lng { get; set; }
}
public class viewport
{
public northeast northeast { get; set; }
public southwest southwest { get; set; }
}
public class bounds
{
public northeast northeast { get; set; }
}
public class northeast
{
public string lat { get; set; }
public string lng { get; set; }
}
public class southwest
{
public string lat { get; set; }
public string lng { get; set; }
}
i have done something similar refer to Google Geo Kit
You can use a dynamic object rather than defining the object.
public static dynamic GEOCodeAddress(String Address)
{
var address = String.Format("http://maps.google.com/maps/api/geocode/json?address={0}&sensor=false", Address.Replace(" ", "+"));
var result = new System.Net.WebClient().DownloadString(address);
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<dynamic>(result);
}
I tried this, made a simple test and it worked (added results and other):
public class GoogleGeoCodeResponse
{
public string status { get; set; }
public results[] results { get; set; }
}
public class results
{
public string formatted_address { get; set; }
public geometry geometry { get; set; }
public string[] types { get; set; }
public address_component[] address_components { get; set; }
}
public class geometry
{
public string location_type { get; set; }
public location location { get; set; }
}
public class location
{
public string lat { get; set; }
public string lng { get; set; }
}
public class address_component
{
public string long_name { get; set; }
public string short_name { get; set; }
public string[] types { get; set; }
}