06远程接口访问,泛型,非泛型
代码如下:
using KangHui.BaseClass;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace _04远程接口访问_泛型_非泛型
{
class Program
{
static void Main(string[] args)
{
//实例化一个远程访问类
WebClient client = new WebClient();
//比特数据:是计算机的一个单位,比特数据可以通过操作系统转化为任何对象 Downloadfile是下载视频图片
byte[] data = client.DownloadData("https://restapi.amap.com/v3/geocode/geo?key=baf5497578ad9c58e218761f22a8d386&address=%E6%B2%B3%E5%8D%97%E7%9C%81%E5%BC%80%E5%B0%81%E5%B8%82%E6%9D%9E%E5%8E%BF%E9%AB%98%E9%98%B3%E9%95%87%E6%AF%9B%E5%AF%A8%E6%9D%91");
//当我们获取到远程接口返回的数据后将比特数据转化为字符串
string html = Encoding.UTF8.GetString(data);
//将字符串转化为对象
//使用Newtonsoft进行反序列化
//Newtonsoft提供了一种特殊的类型叫josn()
JObject obj = (JObject)JsonConvert.DeserializeObject(html);
Console.WriteLine(obj["geocodes"][0]["location"]);
//非泛型的方法
Student s = new Student();
string jsonStr = "{\"name\":\"张三\",\"age\":\"20\"}";
string jsonStr1=JsonConvert.SerializeObject(s);
Console.WriteLine(jsonStr);
Console.WriteLine(jsonStr1);
//泛型的方法;
string Conn = "{\"name\":\"李四\",\"age\":\"19\",\"BookList\":[{\"Book\":\"C#\"},{\"Book\":\"C\"},{\"Book\":\"C++\"}]}";
JObject obj1= (JObject)JsonConvert.DeserializeObject(Conn);
Console.WriteLine(obj1["BookList"][0]["Book"]);
Student s1 = JsonConvert.DeserializeObject<Student>(Conn);
Console.WriteLine(s1.name);
Console.WriteLine(s1.age);
string conn = KangHui.Common.ConfigHelper.GetConnectionString("Conn");
DataSet ds = DbHelperSQL.Query("select CityName from S_City ", conn);
WebClient Client = new WebClient();
string JsonStr=JsonConvert.SerializeObject(ds);
for (int i = 0; i < 20; i++)
{
byte[] Data = Client.DownloadData("https://restapi.amap.com/v3/geocode/geo?key=baf5497578ad9c58e218761f22a8d386&address=" + ds.Tables[0].Rows[i]["CityName"] + "");
string Html=Encoding.UTF8.GetString(Data);
JObject Obj = (JObject)JsonConvert.DeserializeObject(Html);
Console.WriteLine("" + Obj["geocodes"][0]["city"] + ":" + Obj["geocodes"][0]["location"]);
}
Console.ReadKey();
}
}
public class Student
{
public string name = "张三";
public int age = 20;
}
}