远程接口访问 Webclient

webclient类是用来进行远程数据访问的,访问方式非常简单,只需要调用其中的方法就可以了。

 WebClient client = new WebClient();//实例化远程访问类;
 byte[] data = client.DownloadData("https://restapi.amap.com/v3/geocode/geo?key=d961c9110df56b00c970b1a248867860&address=%E9%99%95%E8%A5%BF%E7%9C%81%E5%AE%9D%E9%B8%A1%E5%B8%82%E5%87%A4%E5%8E%BF%E5%9D%AA%E5%9D%8E%E9%95%87");//比特数组:是计算机中的通用单元,比特可以通过操作系统转化为任何对象;
 string html = Encoding.UTF8.GetString(data);//远程返回的数值后,我们需要将比特数组转化为字符串;
//将字符串转化为对象;
//使用newtonsoft进行反序列化;newtonsoft提供了一个特有类型叫JObject
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
Console.WriteLine(obj["geocodes"][0]["location"]);
Console.WriteLine(html);
Console.ReadKey();

序列化和反序列化

序列化:将数据转化为JSON格式。

数据进行序列化的目的是为了跨平台传输,JSON是一种通用格式。

反序列化:将JSON格式转化为程序中的数据类型。

JSON格式使用上没有.NET中的对象,类好用,所以我们要进行反序列化。

//序列化
string jsonStr = JsonConvert.SerializeObject(ds);
//反序列化
//《1》非泛型方法;
JObject obj = (JObject)JsonConvert.DeserializeObject(str);
Console.WriteLine(obj["BookList"][0]["Book"]);
《2》泛型的使用
student s = JsonConvert.DeserializeObject(str);
Console.WriteLine(s.name);

 

你可能感兴趣的:(c#)