【发布时间】:2014-09-13 13:57:38
【问题描述】:
我有使用 GoogleMapsApi 的代码:
public void GoogleGeoCode(string address)
{
address = "Stockholm";
string url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=";
dynamic googleResults = new Uri(url + address).GetDynamicJsonObject();
//Code that lets me pick out values from googleresults
}
googleresults 包含值(经度/纬度),但我怎样才能挑选出这些值并将其用于其他用途?我在类似的情况下使用了这种方法,但在这种情况下它不是有效的代码:
JObject o = JObject.Parse(googleresult);
string name = (string)o.SelectToken("longitude");
编辑:
这个好像是挑放的经纬度:
public void GoogleGeoCode(string address)
{
address = "Stockholm";
string url = "http://maps.googleapis.com/maps/api/geocode/json?sensor=true&address=";
dynamic googleResults = new Uri(url + address).GetDynamicJsonObject();
foreach (var result in googleResults.results)
{
double lng = result.geometry.location.lng;
double lat = result.geometry.location.lat;
}
//Do something else...
}
【问题讨论】:
-
您是否考虑过反序列化为一个对象,然后使用点符号通过该对象访问它?
-
@mason,您介意详细说明如何做到这一点吗?
-
好吧,首先您生成一个可以反序列化的 C# 类。 Json2CSharp 对此有好处。然后,您只需将其反序列化为该对象,如果您使用 Json.NET,您将使用
JsonConvert.DeserializeObject<T>方法。 -
谢谢梅森,我认为这对将来有用。