前言
新型冠狀病毒的出現,着實讓人緊張。我每天一大早都會去查看今天的最新數據,可是每次的數據都挺讓人揪心的。今天突然間很想看看過去的歷史的數據,結果查了很多資料都不是很全。反正國家讓我們待在家里做貢獻,那我們也可以多做做研究,偶然的機會發現了一個API可以查到歷史數據,於是就用.NET Core 3.1實現了一下。
編碼與實現
通過查看返回的數據可以知道,其數據是標准的JSON的格式,這樣就減少了更多的工作。返回數據如下圖所示:
通過分析其數據結構,可以知道其主要有如下屬性:
lastUpdateTime: string,最新更新時間
chinaTotal: object,數據匯總
chinaAdd: object,新增數據匯總
chinaDayList: array,每日歷史數據
chinaDayAddList: array,每日新增歷史數據
areaTree: array,區域數據(含國內省市及國外數據)
項目詳情如下:
最后就是編碼實現,如果獲取數據,這個也比較簡單,使用HttpClient+Newtonsoft.Json即可很快實現,需要注意的是這個接口返回的數據需要二次反序列化。
運行效果如下:
對數據進行格式化展示后輸出:
最后將我們需要的數據保存起來,這個就更簡單了:
1: private static void SaveToFile(nCoVData data)
2: {
3: if (!File.Exists("data.json"))
4: {
5: using (FileStream fs = new FileStream("data.json", FileMode.Create, FileAccess.Write))
6: {
7: using (StreamWriter sw = new StreamWriter(fs))
8: {
9: sw.Write(data.Data);
10: sw.Flush();
11: sw.Close();
12: }
13: }
14: }
15: else
16: {
17: using (FileStream fs = new FileStream("data.json", FileMode.Open, FileAccess.Write))
18: {
19: using (StreamWriter sw = new StreamWriter(fs))
20: {
21: sw.Write(data.Data);
22: sw.Flush();
23: sw.Close();
24: }
25: }
26: }
27: }
完整代碼地址:https://github.com/edison0621/2019nCoVData
后續
既然數據有了,其他的也就好辦多了,比如各種圖形展示。最后武漢加油,中國加油,向白衣天使們致敬,我們一定能度過這道坎。