什麼是 JSON?

Jeffrey Erickson | 內容策略師 | 2024 年 4 月 4 日

在 Web 和行動應用程式開發過程中,有一種多功能資料格式佔據主導地位,那就是 JavaScript Object Notation,更常稱為 JSON。JSON 是一種輕量型資料交換格式,為不同系統提供標準化且有效率的方式來交換資料。由於簡單、彈性並與熱門程式設計語言相容,JSON 已成為建置 Web 應用程式的基礎技術,並享有熱忱開發人員社群的支援。

以下是 JSON 的相關須知。

什麼是 JSON (JavaScript Object Notation)?

JSON (JavaScript Object Notation) 是一種文字式格式,能夠以人類可讀且機器可剖析的方式儲存和交換資料。因此,JSON 相當容易學習和進行疑難排解。雖然 JSON 的根源為 JavaScript,但已發展成高功能資料格式,可簡化各種平台和程式設計語言的資料交換。如果您參與 Web 開發、資料分析或軟體工程,JSON 是您必須瞭解的重要資料格式。

重點精華

  • JSON 是 Web 開發人員經常用來在伺服器和 Web 應用程式之間傳輸資料的熱門資料格式。
  • 由於 JSON 是文字形式,因此人類可以輕易閱讀,電腦也容易理解。
  • JSON 的語言獨立性質,使其成為在不同程式設計語言和平台之間交換資料的理想格式。
  • 有越來越多的資料庫使用 JSON 儲存和交換資料。

JSON 說明

JSON 是 Web 開發人員經常用來在伺服器與 Web 應用程式之間傳輸資料的資料格式。開發人員通常偏好使用 JSON,因為能夠簡化不同技術之間的資料交換。例如,當使用者與 Web 應用程式互動進行購買時,應用程式會以 JSON 格式將使用者的輸入傳送至伺服器。伺服器會處理資料並同樣以 JSON 格式傳回回應,然後由 Web 應用程式轉譯。這讓用戶端與伺服器之間能夠順暢地交換資料,以提供快速、動態且互動的 Web 體驗。

為什麼使用 JSON?

JSON 的語言獨立性質,使其成為在不同程式設計語言和平台之間交換資料的理想格式。例如,以 Java 撰寫的應用程式可以輕鬆將 JSON 資料傳送至 Python 應用程式。或者,以 JavaScript 撰寫的行動應用程式可以使用 JSON 與以 PHP 撰寫的後端伺服器通訊。這是為什麼呢?因為這兩個系統都可以剖析和產生 JSON。

除了 Web 開發之外,JSON 經常在應用程式或 IT 系統中用於儲存和管理組態設定。舉例來說,以 JSON 格式撰寫的組態檔可包含基本資訊,例如資料庫連線詳細資料、API 金鑰或使用者偏好設定。藉由以簡單、容易讀取且容易剖析的 JSON 檔案儲存組態資料,開發人員無須變更程式碼即可修改應用程式設定。

JSON 為何是開發人員的首選?

由於 JSON 是一種在現代化程式設計語言和軟體系統方面享有廣泛支援的彈性資料交換格式,因此成為開發人員的首選。文字形式的 JSON 不占空間,而且資料格式容易剖析,換句話說,不需要額外的程式碼,就能瞭解及解譯提供的資料。

由於 JSON 提供更快的資料交換和網路服務結果,因此大幅提升 API 程式設計和網路服務效能。此外,也可協助開發人員立即存取開源 NoSQL 文件資料庫 (例如 MongoDB 等),這些資料庫以 JSON 格式儲存資料,在交換資料時不需要額外的處理。熱門關聯式資料庫現在可以將 JSON 作為原生格式處理,讓更多應用程式能夠利用 JSON。

JSON、HTML 與 XML 的比較

您可以使用多種格式在網路上儲存和傳輸資料。其中三種熱門選擇是 JSON、XML 和 HTML。JSON 和 XML 都是用來儲存和傳輸資料的格式,而且各有不同的優點。HTML 是用來建立網頁結構的語言,通常會搭配上述資料儲存格式使用。

主要差異

  • JSON (JavaScript Object Notation) 通常用於資料儲存和傳輸。由於 JSON 是一種簡單且容易使用的資料格式,因此成為應用程式的熱門選擇。
  • XML (延伸標記語言) 是類似 JSON 的一般用途標記語言,允許更複雜的資料結構。
  • HTML (超文字標記語言) 是用來建立網頁的結構和內容。這時常與 CSS (階層式樣式表) 和 JavaScript 等其他語言搭配使用,以統一網站的樣式,並為網頁增添互動性。

JSON 資料類型

在開發的相關資訊環境中,資料類型是可以使用程式設計語言儲存和操作的不同類型值。每種資料類型都有自己的一組屬性和行為。JSON 支援數種資料類型,包括:

  1. 物件。JSON 物件資料類型是一組插入 {} (大括號) 之間的名稱或值組。索引鍵必須是字串並以逗號分隔,而且不重複。
  2. 陣列。陣列資料類型是排序的值集合。在 JSON 中,陣列值必須是字串、數字、物件、陣列、布林值或空值類型。
  3. 字串。在 JSON 中,字串會以雙引號括住,可包含任何 Unicode 字元,且通常用來儲存和傳輸文字式資料,例如名稱、地址或描述。
  4. 數字。布林值可指定為 true 或 false。布林值不會用引號括住,而會視為字串值。
  5. 空值。空值表示刻意保留空白的值。未指派任何值給索引鍵時,即可視為 null。
  6. 數字。數字是用來儲存各種用途的數值,例如計算、比較或資料分析。JSON 支援正數和負數以及小數點。JSON 數字採用 JavaScript 的雙精度浮點數格式。

JSON 範例

JSON 的運作方式是以階層方式表示資料,使用索引鍵-值組來儲存資訊。JSON 資料會以大括號 ({}) 括住,其中每個索引鍵-值組都會以逗號 (,) 分隔。例如,下列 JSON 表示某人的聯絡資訊:



```
{
"name": "Jane Smith",
"age": 35,
"city": "San Francisco",
"phone": "014158889275",
"email": "janesmith@sample.com"
}
```
   

在此範例中,"name"、"age"、"city"、"phone" 和 "email" 為索引鍵,而 "Jane Smith"、"35"、"San Francisco"、"014158889275" 和 "janesmith@sample.com" 為對應值。

JSON 的 5 大使用案例

JSON 是開發人員廣泛使用的熱門選擇,包括使用 MERN (由 MongoDB、Express、React 和 Node.js 組成) 和 MERN (以 Angular 取代 React) 等堆疊的開發人員。

  1. 在系統之間傳輸資料。JSON 適用於在不同的系統和程式設計語言之間傳輸資料。例如,假設某個網站資料庫有客戶的郵寄地址,但需要透過 API 驗證,以確保地址有效。公司可以傳送已直接儲存至地址驗證服務 API 的 JSON 格式地址資料。
  2. 從使用者產生的資料產生 JSON 物件。JSON 適用於儲存暫存資料。舉例來說,暫存資料可以是使用者產生的資料,例如網站上提交的表單。JSON 也可以用於循序資料。
  3. 設定應用程式的資料。開發應用程式時,每個應用程式都需要證明資料才能連線至資料庫和日誌檔路徑。該證明資料和日誌檔路徑可在 JSON 檔案中指定,以供所有涉及的系統輕鬆讀取和使用。
  4. 簡化複雜資料模型。JSON 可將複雜的文件簡化為有意義的元件,並將資料擷取流程轉換為可預測且人類可讀的 JSON 檔案。
  5. 組態檔和資料儲存。JSON 可讓您輕鬆地操作和擷取資料。具體而言,其支援巢狀結構,可簡化複雜的階層式資料儲存。JSON 也支援陣列,因此適用於儲存多個相似的資料執行個體。

什麼是 JSON 文件資料庫?

JSON 在開發人員之間的廣泛使用產生了許多專用於該資料格式的高功能資料庫,包括 SQLNoSQL 資料庫。

NoSQL 文件資料庫會直接以 JSON 格式儲存資料,無須額外處理。熱門 NoSQL 資料庫 (例如 MongoDB、Redis 和 Couchbase) 也支援巢狀、物件參照和陣列,讓 JSON 資料庫更容易維護。近年來,這些 NoSQL 資料庫已發展成能夠提供彈性架構以及更高擴展能力和效能等優勢。由於支援彈性和動態資料結構,這些資料庫在儲存半結構化資料 (例如文字文件、影像或社交媒體饋送內容) 的表現出色。

Oracle Database 等廣泛使用的 SQL 資料庫現在提供 JSON 資料類型選項,讓開發人員無須在專案中加入專門的 JSON 資料庫,就能使用 JSON。這讓開發團隊能夠享有 SQL 的現成優勢,並能夠在單一資料庫中使用其他資料類型 (包括圖形、空間、REST、區塊鏈和關聯式資料)。

免費開始使用 Oracle Autonomous JSON Database

想要利用 JSON 管理資料的人員可以考慮使用 Oracle Autonomous JSON Database,這是一種功能完整的雲端式文件資料庫服務,可簡化開發 JSON 核心型應用程式的過程。Oracle Autonomous JSON Database 還提供各種複雜的資料庫功能,包括透過 Oracle SODA 和 Oracle Database API for MongoDB 的 NoSQL 式文件 API、無伺服器擴展、高效能 ACID 交易以及全方位安全性,可隨用隨付,因此價格低廉。

Oracle 也提供容易使用的資料庫服務,可將資料庫管理自動化,包括佈建、設定、調整、擴展、修補、加密和修復資料庫等功能。您可以免費開始使用 Oracle Autonomous JSON Database,並利用許多實用功能。

JSON 已成為許多領域 (包括 Web 開發、資料交換、組態管理和資料傳輸) 之簡單、多功能且無所不在的資料格式。JSON 廣受最熱門的程式設計語言採用和支援,從而鞏固在現代化資料交換和通訊的基石地位。

Oracle Autonomous JSON Database 是一種文件資料庫雲端服務,可簡化開發 JSON 核心型應用程式的過程。

JSON 常見問題

JSON 是檔案還是程式碼?

JSON 既不是檔案,也不是程式碼,而是用來儲存和傳輸資料的簡單格式。這是純文字格式,可讓您在不同的程式設計語言之間輕鬆進行資料交換。JSON 經常用來在 Web 應用程式與伺服器之間傳送資料。

JSON 是程式設計語言嗎?

JSON 不是程式設計語言,而是輕量型資料交換格式。雖然是從 JavaScript 衍生而來,但 JSON 本身並不像真實程式設計語言支援函式。JSON 僅用於在伺服器與 Web 應用程式之間或不同系統之間儲存和傳輸資料。

JSON 是否優於 XML?

雖然開發人員都會使用 JSON 和 XML 在系統之間儲存和傳輸資料,但通常會在不同的情況下使用。XML (延伸標記語言) 是一般用途標記語言,可讓您建立複雜的階層式資料結構,而 JSON 輕量且精簡的性質,使其成為透過網路傳輸資料的更佳選擇,尤其是在頻寬有限或資料傳輸速度很重要的應用程式中。