iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 3
1
Modern Web

ASP.NET Web Form 入門30天系列 第 3

[ASP.NET] 如何使用 「開放資料( Open Data ) 」? + (預備篇:介接前,應該準備好的三件事情) + 如何簡單解釋 API ?


本篇擷取重點:

  1. 什麼是 開放資料( Open Data ) ?
  2. 介接前,應準備好的三件事情

一. 何謂 開放資料( Open Data )

「資料開放(Open Data)」是指任何人都可以自由使用、修改、分享的資料,而「政府資料開放(Open Government Data)」,則是將政府機關因業務需求所蒐集、保有、管理的資料,在不涉及個人隱私及不違背法律限制下,提供給大家自由使用、修改與分享。

常用的「資料開放(Open Data)」平台,如下:
政府資料開放平台:https://data.gov.tw/
高雄市政府資料開放平台:https://data.kcg.gov.tw/


二. 介接前,應準備好的三件事情

  1. 找到 Open Data 的 API,了解API之特質
  2. 下載CHROME擴充外掛,了解資料架構及型態
  3. 於專案中下載NUGET套件-Newtonsoft.Json套件

1. 找到 Open Data 的 API,API之特質

本篇使用的 Open Data 範例為「高雄市政府資料開放平台」-「高雄市政府相關求才、求職、職業訓練資訊及最新資訊發佈 ( Json )」

step1. 進入 高雄市政府資料開放平台 並點選上方的「資料集 」

https://ithelp.ithome.com.tw/upload/images/20190903/201200569G9SOL1l7Q.jpg

step2. 左側點選 您所要選擇的格式「JSON」 並點選您所要選擇的主題
( 高雄市政府相關求才、求職、職業訓練資訊及最新資訊發佈 )

https://ithelp.ithome.com.tw/upload/images/20190903/20120056vVhFCkbEeB.jpg

step3. 點選您所要選擇的資料格式
( 訓練就業中心最新資訊公告JSON格式 )

https://ithelp.ithome.com.tw/upload/images/20190903/20120056ld6IN4pn2b.jpg

step4. 點選右上方綠色方塊-「前往存取資源」

https://ithelp.ithome.com.tw/upload/images/20190903/20120056g3gzrSTqDl.jpg

step4. 點選後,網站頁面將連線至「該資料開放(Open Data)」所存放伺服器之API

https://ithelp.ithome.com.tw/upload/images/20190903/201200566CdiwZYDno.png

這是未經整理的Json格式字串,可藉由CHROME的擴充功能外掛來整理,詳細內容將於下段解釋。

==================================================================
貼心小補充:

  1. API ( Application Programming Interface 應用程式界面 )
    這不好解釋,但下方參考資料連結中有一個很棒的解釋,可以幫助大家理解。

EX:我們今天想要到自動販賣機買瓶可樂,可以分解成下方幾個動作:

a.今天你想取得一瓶原味可樂
b.只要單純的按下面版上原味可樂的按鈕
c.接著你就可以在取物口拿到一瓶可樂

上面第二個動作中的面版/按鈕, 就是所謂的 API 了。

透過這個面版, 你可以拿到可樂的過程大概就是:
想要一瓶可樂(想要的資料) -> 按下按鈕(送出資料需求) -> 拿到飲料(取得資料)

https://ithelp.ithome.com.tw/upload/images/20190903/201200561YtrzEZPjw.jpg

參考資料:
https://cola.workxplay.net/what-is-an-api/ (大推薦)

  1. 不過也因為我們在 API 介接的 Open data,是存放在對方伺服器,而我們每次介接都是重新的向對方伺服器要資料,故有以下特性:我們的網頁內容會隨著對方伺服器的資料是同步的。意即更新一起更新、檔案毀損一起毀損。

==================================================================


2. 下載CHROME擴充外掛,了解資料架構及型態

瀏覽器右上方的「...」-「更多工具」-「擴充功能」
https://ithelp.ithome.com.tw/upload/images/20190903/20120056J05IuHPIj5.jpg
左上方的「擴充功能」-下方的「開啟CHROME線上應用程式商店」
https://ithelp.ithome.com.tw/upload/images/20190903/201200567qdRgUIA4M.jpg
搜尋擴充功能輸入「JSONView」-「加到CHROME」
https://ithelp.ithome.com.tw/upload/images/20190903/20120056PVoR4Emial.jpg
回到剛才混亂的JSON頁面,按「F5」重新整理,應該就會出現排列好的Json格式,
並可使用右上方按鈕進行開關及設定。
https://ithelp.ithome.com.tw/upload/images/20190903/201200569WM1UEs7om.jpg

==================================================================
貼心小補充:

  1. 需要先瞭解資料的「架構」及「型態」,在設立介接類別時才能事半功倍,甚至挖掘出資料「特性」,在往後要使用資料做出輸出時,都將會有莫大的影響。

==================================================================


3. 於專案中下載NUGET套件-Newtonsoft.Json套件

專案(test123)-右鍵-管理NuGet套件
https://ithelp.ithome.com.tw/upload/images/20190904/20120056B5qS8buD1A.jpg

上方「瀏覽」-搜尋「Newtonsoft.Json」-「安裝」
https://ithelp.ithome.com.tw/upload/images/20190904/20120056rojzFqVMdZ.jpg

安裝成功後,即可將 Newtonsoft.Json.dll 加入專案底下的參考之中,
並可於 .aspx.cs 檔案上方加入 using Newtonsoft.Json; 來引用,便可使用JSON.NET

==================================================================
貼心小補充:

  1. 套件是安裝在專案底下,故若新建了一個新專案會需要再次下載。

  2. Newtonsoft.Json,是處理Json格式的類別庫,包含最常使用的序列化和反序列化工具

  3. 什麼是反序列化? 將JSON字串反序列化成物件
    JsonConvert.DeserializeObject<類別>("字串"),<>中定義類別

  4. 什麼是序列化? 將物件序列化成JSON字串
    JsonConvert.SerializeObject(物件)

參考資料:
https://dotblogs.com.tw/berrynote/2016/08/18/200338

==================================================================


介接前應準備好的三件事情,你都準備好了嗎?

我們將於接下來幾天以實際例子幫助大家走過一遭



上一篇
[ASP.NET] 新增Web表單(網頁)實例 + 網頁畫面如何產生?(在伺服器中的處理流程) + 工程師必須養成的良好命名習慣
下一篇
[ASP.NET] 如何使用 「開放資料( Open Data ) 」? + (第一篇,建立介接新類別的三種方法 + 了解JSON 格式 )
系列文
ASP.NET Web Form 入門30天30

尚未有邦友留言

立即登入留言