現在程序員還有誰不知道 JSON 嗎?無論對於前端還是後端,JSON 都是一種常見的數據格式。那麼 JSON 到底是什麼呢?
JSON 的定義
JSON (JavaScript Object Notation) ,是一種輕量級的數據交換格式。它的使用範圍很廣,併成為 ECMA 標準,可以被使用在多種編程語言中,用於前後端之間的數據傳輸、存儲和交換數據。可以説是“用更少的編碼,有更快的處理速度”,所以深受廣大程序員的喜愛。
JSON 格式的數據是由鍵值對組成的,其中鍵值對之間使用逗號分隔。在 JSON 中,鍵和值都必須使用雙引號引起來。
一個簡單的 JSON 對象例子:
{
"name": "Apifox",
"age": 2,
"city": "Guangzhou"
}
JSON 的含義和類型
JSON 用於 JavaScript,把任何 JavaScript 對象變成 JSON,即把這個對象序列化成一個 JSON 格式的字符串,然後通過網絡傳遞給其他計算機。JSON 格式的字符串由雙引號 “ ” 包裹,由鍵值對組成,鍵和值之間使用冒號 : 分隔,鍵值對之間使用逗號 , 分隔。值可以是字符串、數字、布爾、null、數組或對象等類型。
在 JSON 中,常見的數據類型有:
- 字符串:JavaScript 中的
string,用於表示文本信息,包含反斜槓\轉義。
{ "name": "Apifox" }
- 數字:JavaScript 中的
number,用於表示數值信息,可以是整數或浮點數。
{
"id": 48,
"price": 17.95
}
- 布爾值:JavaScript 中的
boolean,用於表示真假信息。布爾值並不包含在引號內,而是被視為字符串值。
{ "allowLogin": false }
- null:JavaScript的
null,用於表示空值。
{ "address": null }
- 對象:JavaScript的
{ ... },表示方式用於表示有序的值的集合,每個值可以是任意類型。
{
"category" : {
"id" : 675442 ,
"name" : "小狐"
}
}
- 數組:JavaScript的
Array,表示方式為[],用於表示無序的鍵值對集合,每個鍵值對都是由鍵名和對應的值組成。
{
"list" : [
{
"name" : "Lihua",
"age" : 22,
}
{
"name" : "Zhangsan",
"age" : 25
}
]
}
下面是一個完整的 JSON 數據示例:
{
"name": "Simon",
"age": 2,
"isMale": true,
"hobbies": ["reading", "learning", "traveling"],
"address": {
"city": "Guangzhou",
"postCode": "510000"
},
"email": null
}
JSON 數據的使用場景
JSON 的應用非常廣泛。它被用於前後端之間的數據傳輸,也被用於存儲和交換數據。在 Web 開發中,JSON 通常被用來獲取來自服務器的數據。這些數據可以被使用在網頁上,以便實現動態的交互和更新頁面內容。同時,JSON 也被廣泛應用於移動應用程序、桌面應用程序以及各種互聯網服務中。
相比於其它數據格式,JSON 具有以下優勢:
- 簡潔易讀:JSON 的語法比較簡潔,易於閲讀和編寫。
- 解析速度快:JSON 的解析速度通常比其他數據格式更快。
- 兼容性好:JSON 和 JavaScript 的兼容性非常好,因為它們共享着相同的語法和數據結構。
JSON 與 XML
XML 是一種另外一種常見的數據格式(純文本格式),也被廣泛應用於數據交換。在 JSON 出現之前,大家一直用 XML 來傳遞數據。
但是相對於 JSON 而言,XML 規範比較複雜,JSON 的語法更加簡潔,易於閲讀和編寫。且 JSON 的解析速度通常也比 XML 更快。同時,JSON 和 JavaScript 的兼容性非常好,因為它們共享着相同的語法和數據結構。
但是 XML 仍然是一種被廣泛使用的數據格式,尤其在某些特定領域和場景下,它對於數據的描述更加嚴謹和準確,且支持更為複雜的數據結構和數據類型定義等。因此,在實際的編程和開發過程中,我們需要根據具體的場景和需要,選擇合適的數據格式。
關於 JSON 的其他補充
除了上述內容,JSON 還有一些其他的相關內容:
- JSONP:JSONP 是 JSON with Padding 的簡稱,是一種通過 script 標籤跨域獲取 JSON 數據的技術。
- JSON Schema:JSON Schema 是一種用於驗證和描述 JSON 數據的規範,它可以用於定義 JSON 數據的結構、格式和約束條件。
- JSON Web Token(JWT) :JWT 是一種基於 JSON 的開放標準,用於在網絡上安全地傳輸聲明。它常被用於身份認證和授權場景中。
需要注意的是,JSON 雖然被廣泛使用,但是它並不是一種完全安全的數據格式。在處理 JSON 數據時,需要注意防止 XSS 攻擊和其他安全漏洞。因此,在使用 JSON 時,需要仔細考慮數據的來源和使用方式,以確保數據的安全性。
小結
JSON 作為一種輕量級的數據格式,具有更加簡潔的語法和更好的解析速度。因此,學習如何使用JSON 已經變成了現代編程的基本技能之一。JSON 數據格式也是常用於 API 接口傳輸數據的格式。
知識擴展:
上面我們瞭解了JSON 數據格式,如果你想了解更多 API 相關使用技巧, 可以查看以下文章:
- API 在線調試指南 - 工具、資源與技巧
- REST API 開發 - 什麼是契約優先