學習Json檔案格式與實作系列:(1/5)物件的概念與結構

資料、數據的傳遞在資訊蓬勃發展的今天,幾乎是不可避免、天天上演的劇情。譬如:手機訊息的傳遞、網絡檔案的分享、各種平台的資料下載,都是您我經常面臨的情境。而資料檔案的格式雖然多元,多變,普遍且具優勢的格式並不多,但其中的Json檔案格式被許多資源、系統與平台廣泛採用,不論您是否具備資訊背景,絕對是易懂易學且十分值得您花點時間認識與運用的。

JavaScript Object Notation(JSON)是一種結構化資料檔案格式,後以純文字的方式將結構化資料(structured data) 呈現為 JavaScript 物件的標準格式,常用於網站上的資料呈現、傳輸 (例如將資料從伺服器送至用戶端,以利顯示網頁),所以,要理解(JSON)檔案格式,我們就先從JavaScript的物件概念及結構來談起囉!。

物件的基礎概念及結構

在軟體系統中,物件(Objects)是物件導向程式設計(OOP)的核心,而在JavaScript中,物件(Objects)是一種資料結構,其內容包含了屬性(Properties)和方法(Methods),簡單來說就是用來儲存資料的容器。JavaScript物件是一種複合資料型態的集合,此集合是由「鍵值對」(Key-Value Pairs)所組成,描述著(key)與(value)之間的關聯。每個鍵(Key)是一個字串,而物件的值(Value)可以是原始資料型別,例如:數字、字串、布林值等等,也可以是物件型別,例如:物件、陣列、函式等等。最常見的物件宣告方式是使用一對{}來加以宣告,例如:

{
   姓名: "羅小貞",
   年齡: 23,
   會員: true
}

此物件裡有三組「鍵值對」(Key-Value Pairs),第一組鍵(Key)是一個「姓名」,其值(Value)是字串"羅小貞";第二組鍵(Key)是一個「年齡」,其值(Value)是整數25;第三組鍵(Key)是一個「會員」,其值(Value)是布林值 true。對資料庫系統略有概念的人,應該可以看出,這不正是一種結構化資料的表達嗎?

認識JSON格式

有了物件的基礎與概念了,就來談談JSON囉!JSON原文是JavaScript Object Notation的縮寫,是一種輕量級的資料交換格式,非常容易閱讀和撰寫,同時也很容易透過程式解析與生成。在此我們就先來科普一下JSON的基本概念、格式、用途和範例,讓您更瞭解、掌控並運用這個極為廣泛且普及的資料格式。首先,JSON是一種基於文本的資料交換格式,其源於JavaScript語言,但已被許多其他編程語言所支持。由於其簡單、易讀的語法和跨平台的兼容性,JSON已成為Web開發中廣泛使用的資料格式,尤其適用於API和AJAX應用。因此,許多軟體系統、平台,都提供有JSON檔案格式的輸出。諸如:政府開放平台等官方網站、組織機構供給使用者下載的資料檔案格式,除了傳統的CSV、TXT、XM、XLS等檔案格式外,JSON檔案格式也常常是選項之一喔!

JSON格式

JSON格式主要包含兩種資料結構:物件(Object)和陣列(Array)。

  1. 物件(Object):物件就是由零個或多個「鍵值對」(Key-Value Pairs)所組成的無序集合,若集合裡有多組「鍵值對」,則彼此之間用逗號分隔,最外圍則以大括號 {} 包裹。而「鍵值對」裡的鍵(Key)是字串,值(Value)可以是字串、數字、布爾值、null、物件或陣列。例如:

{
 "工號": "E1234",
 "姓名": "楊佑臻",
 "部門": "業務部"
}

  1. 陣列(Array):陣列是由零個或多個元素組成的有序列表,元素與元素之間用逗號分隔,最外圍用一對中括號 [ ] 包裹。陣列裡元素可以是字串、數字、布林值、null、物件或陣列。例如可以描述擅長那些運動的陣列:

[
  "游泳",
  "籃球",
  "高爾夫球",
[

清單裡的元素也可以是物件,因此,擁有多少信用卡的資料也可以如此表示:

[
 {
   "卡別":"VISA",
   "有效日期": "0230"
 },
 {
   "卡別":"Master",
   "有效日期": "0832"
 },
 {
   "卡別":"JCB",
   "有效日期": "0230"
 }
]

簡單的說,JSON是以JavaScript語法為基礎的物件導向資料格式,其副檔名為 .json 的文字檔案,不但可以獨立使用,在許多程式設計環境裡亦可讀取(剖析)並產生JSON。JSON可能是物件或字串。當您想從JSON中讀取資料時JSON可作為物件;若是要跨網路傳送JSON時,就會是字串。因此,您可以使用作簡單的Windows 記事本這個文字編輯器來開啟、編輯,都不是什麼大問題。這樣的檔案格式正猶如XML標籤式的檔案格式一般,極容易跨系統、跨平台的傳遞與共用。

 

系列文章

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