學習Json檔案格式與實作系列:(2/5)再談JSON的架構

前一篇文章我們提到「JSON 物件基本上就是 JavaScript 物件」,而這敘述在大多數情況下都對。正如同標準的JavaScript物件,我們可在JSON內加入相同的基本資料型別,諸如:字串、數字、陣列、布林值,以及其他物件,也能同樣再建構出資料繼承,因此,非常適合結構化資料的儲存與傳遞。

如何建立 JSON 字串

我們整理一下,歸納出底下的幾項規則來建立JSON字串:

  • JSON是文字格是,字串可以包含陣列Array資料或者是物件Object資料。
  • Object物件是用一對大括號 { } 來表示並寫入資料
  • Array陣列可以用一對中括號 [ ] 來表示並寫入資料
  • 「鍵值對」(Key-Value Pairs)裡的內容是成雙成對的,而(Key)與(Value),彼此之間是以冒號(:)分隔。
  • Object物件或Array陣列的value值可以是以下的資料型別:
    • 數字,可以是整數,也可以是浮點數
    • 字串,必須使用一對雙引號""
    • 布林值(boolean),可以使用true或false
    • 陣列,必須使用一對中括號 [ ] 來標示
    • 物件,必須使用一對大括號 { } 來標示
    • 支援NULL值

譬如:我們要建立一位聯絡人的資料,也就是要建立一個物件,可以儲存一筆資料記錄,那麼只要使用一對大括號的物件標示,再置入幾組「鍵值對」(Key-Value Pairs)就足夠了。例如:「姓名」、「性別」、「年齡」、「位址」與「電話」等(key),都有相對應的(value)。

不過,在實務經驗上,資料架構常常不是那麼簡單,物件裡還可以有物件,在複雜一點的結構化資料是常見的案例。譬如在上述大括弧裡的「鍵值對」(Key-Value Pairs)中,若是「位址」的內容可以再細分為「縣市」、「鄉鎮區」與「地址」等三組「鍵值對」,則「位址」這個鍵(Key)的值(Value)就必須規範是一個由一對大括號所囊括的物件,而在其中便包含著上述三組「鍵值對」。至於「電話」若是屬於可以儲存若干組電話類型內容,則「電話」便是由一對中括號所囊括的陣列,即其內容便可以容納為數不一的元素,而陣列裡的這些元素則可規劃為儲存著「電話類型」及「電話號碼」這兩組「鍵值對」的物件。

如此縮排、對齊的寫法,是非常容易閱讀與編輯的,不過,為了解釋更多物件的內容,筆者將上述"黃筱珍" 這位聯絡人的JSON資料格式,寫成以下形式也是可行的。

因此,若要描述2位、3位、…乃至更多位聯絡人呢?那便是建立陣列的概念,讓陣列裡的每一個元素都是上述"黃筱珍" 這位聯絡人的JSON資料格式囉!例如以下的JSON檔案格式正描述著"黃筱珍"、"趙惠敏"、"沈山君" 等三位聯絡人物件,視為陣列裡的元素,含括在一對中括號裡。

我只是一個行政人員、秘書、電腦中使用者、…為什麼知道這麼多呢?AI時代、資訊課技的發展不可言喻,身在職場上不論任何工作環境、職務,多多少少都會有接觸資料、處理資料的機會,就連爬個文、瀏覽個網站、下載資料檔案、複製貼上、…資料的萃取、拆分、轉換等作業幾乎是不可避免的境遇,因此,當您在使用諸如Power Query等ETL類型的工具時,多瞭解一下各種常見的資料檔案格式概念,面對資料處理與轉換的工作,自然可以更加得心應手,結構化資料的某些疑難雜症也就迎刃而解了。

 

系列文章

(1/5) 物件的概念與結構 
(2/5) 再談JSON的架構  
(3/5) Power Query的容器  
(4/5) Power Query匯入Json實務範例1  
(5/5) Power Query匯入Json實務範例2