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