在解析JSON的資料有幾個麻煩點,首先是使用前要先為JSON資料建立專用的類別,即是說我要先了解JSON完整格式,光想就覺得很累(我超懶),接下來要處理的就是萬一有某單一筆的JSON資料不完整,在解析的過程可能會造成程式的錯誤。

今天這個範例的想法主要是,我不想去了解JSON的資料格式,不想特別去建立專用的類別,又想很便利的去查出各筆資料的特定欄位值,所以採用的方式就是將JSON的資料讀出後(例如台灣環保署測站的JSON格式API,或AIRBOX的JSON 格式 API),將JSON字串直接轉成XML的格式,再針對XML去查詢出所需欄位的資料

預備工作,先利用NuGet加入Newtonsoft.Json套件,以便利用其中的方法來轉換JSON成XML

做法上是使用System.Net.WebClient去連結JSON的來源(例如台灣環保署測站的API),取回資料的JSON字串,利用JsonConvert.DeserializeXNode將JSON字串直接轉成XML的格式,

左邊是轉換前JSON的資料,右邊是轉換後的XML資料

在將JSON轉換成XML後就輕鬆了,可以使用我之前文章"以簡易的方式來解析XML中的資訊"裡面的作法,去讀取所需的欄位值,避開了要預先建立JSON資料專用類別的工作

直接在XML的格式中挑了幾個欄位,測試一下執行的狀況

YES,偷懶萬歲!