Beispiel #1
0
        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;
            }));
        }
Beispiel #2
0
 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;
 }