jsonconvert.deserializeobject返回null

当用户输入地址(现在)的2个值(如城市和街道)时,我正试图从谷歌地图获取坐标。遇到来自谷歌地图api的Json字符串反序列化的麻烦。必须非常简单请帮助我关于我所缺少的。

这是json字符串: http : //pasted.co/d9e7c1de

我需要结果/几何/位置/ lat,结果/几何/位置/ lng信息

这是我的代码:

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 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 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(Jsonstring); coordinatesX = m.geometry.location.lat; coordinatesY = m.geometry.location.lng; } 

您需要使用另一个顶级类来反序列化响应尝试这样:

 public class Responce { public string status{get;set;} public List results {get;set;} } ... var responce = JsonConvert.DeserializeObject(Jsonstring); DoSomething(responce.results);