BaiduのインタフェースAPI:https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={date}&resource_id=6018 --dateクエリの日付(例:2019から9)
いくつかのパラメータは、インタフェースクラスが返されました:
パブリック クラスカレンダー { 公共の int型のステータスは{ 取得します。セット; } パブリックリスト<CalendarData>データ{ 得ます。セット; } } パブリック クラスCalendarData { // 祝日休日{取得します。セット; } 公共の一覧<ホリデー>休日{ 取得します。セット; } } パブリック クラスホリデー { 公共の 文字列 DESC { 取得します。セット; } 公共の 文字列祭り{ 取得します。セット; } 公共の一覧<HolidayList>リスト{ 取得します。セット; } パブリック 文字列名前{ 取得します。セット; } パブリック 文字列の残り{ 取得します。セット; } } パブリック クラスHolidayList { 公共の 文字列の日付{ 取得します。セット; } /// <要約> /// 1休息2上班 /// </要約> 公共の int型の状態{ 取得します。セット; } パブリック 文字列の発言 { 取得 { 戻りステータス== 1?" 休假":" 上班" 。 } } } パブリック クラスCalendar2 { 公共の int型の状態{ 取得します。セット; } パブリックリスト<CalendarData2>データ{ 得ます。セット; } } パブリック クラスCalendarData2 { 公共の休日の休日{ 取得します。セット; } }
休日を取得します。
プライベート 静的 無効 GetHoliday(文字列日付) { Webクライアントクライアント = 新しいWebクライアント(); client.Encoding = Encoding.UTF8。 VaRの URL = $ " https://sp0.baidu.com/8aQDcjqpAAV3otqbppnN2DJv/api.php?query={date}&resource_id=6018 " 。 VAR jsondata = client.DownloadString(URL); 試す { VARのモデル= JsonConvert.DeserializeObject <カレンダー> (jsondata)。 foreachの(VARのアイテム中model.data) { foreachの(VARの休日でitem.holiday) { foreachの(VARの日中holiday.list) { Console.WriteLineを($ " 日期:{day.date}、{day.remark} " ); } } } } キャッチ(例外) { VARのモデル= JsonConvert.DeserializeObject <Calendar2> (jsondata)。 foreachの(VAR項目でmodel.data) { 場合(!item.holiday = nullを!&& item.holiday.list = ヌル) { foreachの(VARの日中item.holiday.list) { Console.WriteLineを($ " 日期:{日.date}、{day.remark} " )。 } } } } // jオブジェクトjオブジェクト= JObject.Parse(JSON)。 //VARの休日= jオブジェクト[ "データ"] [0] [ "休日"]; // もし(休日!= nullの&& holiday.Children()。カウント()> 0) // { // foreachの(holiday.Childrenの動的アイテム()。ToListメソッド()) // { // foreachの(ダイナミック日item.list中) // { // 文字列の発言= day.status == 1?"休假": "上班"。 // Console.WriteLineを($ "日期:{day.date}、{発言}")。 // } // } // } }
注意:インタフェースによって返されるパラメータのいくつかは、必ずしもすべての休日のコレクションではありません
ダウンロードデモコード:デモ