如何反序列化http web响应



我在我的asp.net应用程序中使用了google API来获取两个区域之间的距离。

给出结果为fallow

{
   "destination_addresses" : [ "Dhantoli, Nagpur, Maharashtra, India" ],
   "origin_addresses" : [ "Khamla, Nagpur, Maharashtra, India" ],
   "rows" : [
      {
         "elements" : [
            {
               "distance" : {
                  "text" : "4.2 km",
                  "value" : 4214
               },
               "duration" : {
                  "text" : "8 mins",
                  "value" : 467
               },
               "status" : "OK"
            }
         ]
      }
   ],
   "status" : "OK"
}

我收集它在字符串中,并试图获得距离文本(这是我需要的)

我已经尝试了以下代码,它不工作

DistanceMatrix data = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<DistanceMatrix>(dataString);

dataString是来自API

的结果
public class DistanceMatrix {
    public string destination_addresses { get; set; }
    public string origin_addresses { get; set; }
    public Element rows { get; set; }
    public string status { get; set; }
}
public class Element {
    public Data distance { get; set; }
    public Data duration { get; set; }
    public string status { get; set; }
}
public class Data {
   public string text { get; set; }
   public string value { get; set; }
}

请帮我从API结果中获得距离文本。

不使用json方法,使用google距离矩阵api的XML api

返回xml响应,将其收集为字符串并将其解析为fallow。

XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(dataString);
if (xmldoc.GetElementsByTagName("status")[0].ChildNodes[0].InnerText == "OK")
{
     XmlNodeList distance = xmldoc.GetElementsByTagName("distance");
}

最新更新