当用户输入城市和街道等地址的 2 个值(目前)时,我试图从谷歌地图获取坐标。来自谷歌地图 api 的 Json 字符串的反序列化遇到问题。必须非常简单,请帮助我关于我所缺少的。
这是 json 字符串:http://pasted.co/d9e7c1de http://pasted.co/d9e7c1de
我需要结果/几何/位置/纬度,
结果/几何/位置/液化天然气信息
这是我的代码:
public class Geometry
{
[JsonProperty("bounds")]
public Bounds bounds { get; set; }
[JsonProperty("location")]
public Location location { get; set; }
[JsonProperty("location_type")]
public string location_type { get; set; }
[JsonProperty("viewport")]
public Viewport 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 string place_id { get; set; }
public List<string> types { get; set; }
}
protected void Button1_Click(object sender, EventArgs e)
{
double coordinatesX = 0;
double coordinatesY = 0;
string APIKEY = "****************************";
string MyAdres = TextBox1.Text + "," + TextBox2.Text;
string stringpath;
stringpath = "https://maps.googleapis.com/maps/api/geocode/json?address=" + MyAdres + "&key=" + APIKEY;
WebClient Web = new WebClient();
string Jsonstring = Web.DownloadString(stringpath).ToString();
Result m = JsonConvert.DeserializeObject<Result>(Jsonstring);
coordinatesX = m.geometry.location.lat;
coordinatesY = m.geometry.location.lng;
}
您需要使用另一个顶级类来反序列化响应
尝试这个:
public class Responce
{
public string status{get;set;}
public List<Result> results {get;set;}
}
...
var responce = JsonConvert.DeserializeObject<Responce>(Jsonstring);
DoSomething(responce.results);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)