两个实体类:
public class JDList
{
public string jdName { get; set; }
public string location { get; set; }
}
public class Rootobject
{
public int status { get; set; }
public string message { get; set; }
public int count { get; set; }
public List<Datum> data { get; set; }
public string request_id { get; set; }
}
public class Datum
{
public string id { get; set; }
public string title { get; set; }
public string address { get; set; }
public string category { get; set; }
public int type { get; set; }
public Location location { get; set; }
public int adcode { get; set; }
public string province { get; set; }
public string city { get; set; }
public string district { get; set; }
}
public class Location
{
public float lat { get; set; }
public float lng { get; set; }
}
添加一个app.config文件内容:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="Address" value="北京,天津,上海,澳门,香港,重庆,内蒙古,广西,西藏,宁夏,新疆,河北,山西,辽宁,吉林,黑龙江,江苏,浙江,安徽,福建,江西,山东,河南,湖北,湖南,广东,海南,四川,贵州,云南,陕西,甘肃,青海,台湾"/>
</appSettings>
</configuration>
窗体代码:
public partial class Form1 : Form
{
private Rootobject root = new Rootobject();
private List<JDList> jdList = new List<JDList>();
List<string> addList = new List<string>();
public Form1()
{
string[] address = ConfigurationManager.AppSettings["Address"].Split(',');
InitializeComponent();
label1.Visible = false;
foreach (var item in address)
{
addList.Add(item);
}
}
private void Getjson(string add)
{
string strURL = $"https://apis.map.qq.com/ws/place/v1/suggestion/?region={add}&keyword=旅游景点&key=你自己申请的key";
HttpWebRequest request;
// 创建一个HTTP请求
request = (HttpWebRequest)WebRequest.Create(strURL);
//request.Method="get";
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
StreamReader myreader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string responseText = myreader.ReadToEnd();
myreader.Close();
root = new Rootobject();
root = JsonConvert.DeserializeObject<Rootobject>(responseText);
if (root.data != null)
{
foreach (var item in root.data)
{
JDList jd = new JDList();
jd.jdName = item.city + item.title;
jd.location = item.location.lng.ToString() + "," + item.location.lat.ToString();
jdList.Add(jd);
}
}
}
private void button1_Click(object sender, EventArgs e)
{
label1.Visible = true;
label1.ForeColor = Color.Red;
label1.Text = "正在下载......";
TaskFactory fac = new TaskFactory();
List<Task> tasklist = new List<Task>();
tasklist.Add(fac.StartNew(() => GetJDNameList()));
Task.WaitAll(tasklist.ToArray());
label1.Visible = false;
}
private void GetJDNameList()
{
foreach (var item in addList)
{
Thread.Sleep(500);
Getjson(item);
}
string json = JsonConvert.SerializeObject(jdList);
FileStream fs = new FileStream("景点.json", FileMode.Create);//在程序根目录下创建txt文件
StreamWriter sw = new StreamWriter(fs, Encoding.UTF8);//创建写文件的流
sw.WriteLine(json);
sw.Close();
fs.Close();
MessageBox.Show("下载完成");
}
}
文章转自码农猩球。原文链接: http://www.dotnetstar.club/c/10104