private void Execute() { if (dic.Count < 1000) { return; } //获取页面json string from = ""; string to = ""; Invoke(new Action(() => { from = JsonSearch(dic, txtDesFrom.Text.Trim()); to = JsonSearch(dic, txtDesTo.Text.Trim()); })); if (from == "0" || from == "-1" || to == "0" || to == "-1") { return;//错误 } string date = dtp.Value.ToString("yyyy-MM-dd"); string url = "https://kyfw.12306.cn/otn/lcxxcx/query" + "?purpose_codes=ADULT" + "&queryDate=" + date + "&from_station=" + from + "&to_station=" + to; string json = GetResponseHtml(url, "get", "", "application/x-www-form-urlencoded", "utf-8"); //处理返回的json string[] strTickets = JsonHelp(json);//每行一组票况 List<Tickets> lst_tickets = new List<Tickets>(); for (int i = 0; i < strTickets.Length; i++) { Tickets tk = new Tickets(); tk = JsonTicket(strTickets[i]); lst_tickets.Add(tk); } Invoke(new Action(() => { lst_ticketsPart = lst_tickets; dataGridView1.DataSource = lst_tickets; //dataGridView1. //隐藏列 dataGridView1.Columns["train_no"].Visible = false; dataGridView1.Columns["start_station_telecode"].Visible = false; dataGridView1.Columns["end_station_telecode"].Visible = false; dataGridView1.Columns["from_station_telecode"].Visible = false; dataGridView1.Columns["start_station_name"].Visible = false; dataGridView1.Columns["end_station_name"].Visible = false; dataGridView1.Columns["train_no"].Visible = false; dataGridView1.Columns["to_station_telecode"].Visible = false; dataGridView1.Columns["day_difference"].Visible = false; dataGridView1.Columns["train_class_name"].Visible = false; dataGridView1.Columns["canWebBuy"].Visible = false; dataGridView1.Columns["lishiValue"].Visible = false; dataGridView1.Columns["yp_info"].Visible = false; dataGridView1.Columns["control_train_day"].Visible = false; dataGridView1.Columns["start_train_date"].Visible = false; dataGridView1.Columns["seat_feature"].Visible = false; dataGridView1.Columns["yp_ex"].Visible = false; dataGridView1.Columns["train_seat_feature"].Visible = false; dataGridView1.Columns["seat_types"].Visible = false; dataGridView1.Columns["location_code"].Visible = false; dataGridView1.Columns["from_station_no"].Visible = false; dataGridView1.Columns["to_station_no"].Visible = false; dataGridView1.Columns["start_train_date"].Visible = false; dataGridView1.Columns["control_day"].Visible = false; dataGridView1.Columns["sale_time"].Visible = false; dataGridView1.Columns["is_support_card"].Visible = false; dataGridView1.Columns["note"].Visible = false; dataGridView1.Columns["gg_num"].Visible = false; //dataGridView1.Columns["location_code"].Visible = false; //dataGridView1.Columns["from_station_no"].Visible = false; //dataGridView1.Columns["to_station_no"].Visible = false; //dataGridView1.Columns["start_train_date"].Visible = false; //dataGridView1.Columns["control_day"].Visible = false; lbListCount.Text = dataGridView1.Rows.Count.ToString() + " 辆"; btnSearch.Enabled = true; })); }
public Tickets JsonTicket(string jsonPart) { //将一个火车的json //train_no:550000T11640,station_train_code:T116, //start_station_telecode:SHH,start_station_name:上海,end_station_telecode:LZJ,end_station_name:兰州, //from_station_telecode:SHH,from_station_name:上海,to_station_telecode:ZZF,to_station_name:郑州, //start_time:15:42,arrive_time:01:44,day_difference:1,train_class_name:,lishi:10:02, //canWebBuy:Y,lishiValue:602,yp_info:10128530004036350000606665000510128500003023050000,control_train_day:20131230,start_train_date:20131211,seat_feature:W343631333,yp_ex:1040601030,train_seat_feature:3,seat_types:14613,location_code:H2,from_station_no:01,to_station_no:11,control_day:17,sale_time:1500,is_support_card:0,note:已售完, //gg_num:--,gr_num:5,qt_num:--,rw_num:无,rz_num:--,tz_num:--,wz_num:无,yb_num:--,yw_num:无,yz_num:无,ze_num:--,zy_num:--,swz_num:-- Tickets tk = new Tickets(); string[] lev1= JsonCut(jsonPart, ","); tk.train_no = JsonCut(lev1[0], ":")[1]; tk.station_train_code = JsonCut(lev1[1], ":")[1]; tk.start_station_telecode = JsonCut(lev1[2], ":")[1]; tk.start_station_name= JsonCut(lev1[3], ":")[1]; tk.end_station_telecode= JsonCut(lev1[4], ":")[1]; tk.end_station_name=JsonCut(lev1[5], ":")[1]; tk.from_station_telecode=JsonCut(lev1[6], ":")[1]; tk.from_station_name =JsonCut(lev1[7], ":")[1]; tk.to_station_telecode =JsonCut(lev1[8], ":")[1]; tk.to_station_name =JsonCut(lev1[9], ":")[1]; tk.start_time = lev1[10].Replace("start_time:",""); tk.arrive_time = lev1[11].Replace("arrive_time:", ""); tk.day_difference =JsonCut(lev1[12], ":")[1]; tk.train_class_name =JsonCut(lev1[13], ":")[1]; tk.lishi = lev1[14].Replace("lishi:", ""); tk.canWebBuy =JsonCut(lev1[15], ":")[1]; tk.lishiValue =JsonCut(lev1[16], ":")[1]; tk.yp_info =JsonCut(lev1[17], ":")[1]; tk.control_train_day =JsonCut(lev1[18], ":")[1]; tk.start_train_date =JsonCut(lev1[19], ":")[1]; tk.seat_feature =JsonCut(lev1[20], ":")[1]; tk.yp_ex =JsonCut(lev1[21], ":")[1]; tk.train_seat_feature = JsonCut(lev1[22], ":")[1]; tk.seat_types= JsonCut(lev1[23], ":")[1]; tk.location_code= JsonCut(lev1[24], ":")[1]; tk.from_station_no= JsonCut(lev1[25], ":")[1]; tk.to_station_no= JsonCut(lev1[26], ":")[1]; tk.control_day= JsonCut(lev1[27], ":")[1]; tk.sale_time= JsonCut(lev1[28], ":")[1]; tk.is_support_card= JsonCut(lev1[29], ":")[1]; tk.note= JsonCut(lev1[30], ":")[1]; tk.gg_num= JsonCut(lev1[31], ":")[1]; tk.gr_num= JsonCut(lev1[32], ":")[1]; tk.qt_num= JsonCut(lev1[33], ":")[1]; tk.rw_num = JsonCut(lev1[34], ":")[1]; tk.rz_num = JsonCut(lev1[35], ":")[1]; tk.tz_num = JsonCut(lev1[36], ":")[1]; tk.wz_num = JsonCut(lev1[37], ":")[1]; tk.yb_num = JsonCut(lev1[38], ":")[1]; tk.yw_num = JsonCut(lev1[39], ":")[1]; tk.yz_num = JsonCut(lev1[40], ":")[1]; tk.ze_num=JsonCut(lev1[41], ":")[1]; tk.zy_num=JsonCut(lev1[42], ":")[1]; tk.swz_num = JsonCut(lev1[43], ":")[1]; return tk; }