什麼是JSON?如何使用?它比BSON更好嗎?
本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃!
長話短說:如果你想知道JSON——它是什麼,如何使用它以及它和BSON哪個更好,那麼你來對地方了。在本文中,我們將探討這些縮寫字母代表什麼意思,以及這些格式在程式設計和資料庫世界中有什麼作用。
什麼是JSON?
JSON代表JavaScript Object Notation。基本上說來,它使用從JavaScript衍生的語法,用一種人類和機器都可讀的方式來表示資料。例如,JSON網站上使用的一個例子描述了JavaScript Object Notation中的glossary,如下所示:
如何使用JSON
正如你所看到的,我們建立了層次結構,在一系列花括號內({})封裝各個層次。在每個層次中,有名稱/值對,如“title”:“example glossary”。用和JavaScript物件相同的方式工作,通過啟動新的花括號,對的值部分可以開啟但卻會是另一個層次。這創造了一種良好的資料佈局,不但資訊可以被機器輕易掃描,而且人類搜尋所需要的內容也方便。
這種標記方法允許表示許多資料型別——數字,字串和布林值,雜湊(用{}封裝)和陣列(用[]封裝)。
一旦資料用這種標記方法表示的話,那麼JSON解析器可以用於幾乎任何程式語言,將這種標記方法轉變為本地資料型別,從而允許程式設計師使用語言的自然語法訪問資料。由於這種標記方法是如此的普遍,因此大多數程式設計師對儲存和檢索這種資料型別有著大量豐富的經驗。
如何在資料庫中使用它?
文件資料庫通常用JSON格式或基於這種格式來儲存資料。不同於關聯式資料庫使用表格和行,文件資料庫會通過使用JSON格式來儲存和查詢資訊。
這些資料庫把每組JSON資料作為一個檔案。由於結構是層次化的,因此每個文件都可以有關於任何鍵的子文件。這種設定使得它很容易讓熟悉語言的程式設計師在資料庫中儲存和查詢資料。
什麼是BSON?
BSON即Binary JSON。這種格式專門用於MongoDB的文件資料庫。其背後的理念是提供JSON格式的功能,同時也能夠用自帶二進位制格式的速度使用該格式。
JSON vs. BSON
JSON僅代表一種資料結構,而MongoDB可以使用BSON在任何層次的基礎上構建鍵資料庫索引,從而幫助提高這個領域的速度。MongoDB也提供了一種稱為GridFS的規範,可以結合BSON儲存資料,同時不受BSON的16MB檔案大小的限制。這在儲存大檔案時真的很有用,因為它會把大檔案劃分成“塊”,以便於在資料庫中的儲存能夠正常工作。
在大多數情況下,JSON和BSON非常相似,但BSON可以提供額外的速度衝擊。當然,兩者都是應用程式儲存和檢索資料非常方便的方法。
譯文連結:http://www.codeceo.com/article/json-vs-bson.html
英文原文:What is JSON? How Do I Use It? Does It Beat BSON?
翻譯作者:碼農網 – 小峰
[ 轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]
相關文章
- JSON是什麼,有什麼用,怎麼寫jsonJSON
- json檔案是幹什麼的 json檔案可以刪除嗎JSON
- jQuery是什麼?如何使用?jQuery
- [譯] JavaScript 是如何工作的:對比 WebAssembly + 為什麼在某些場景下它比 JavaScript 更合適JavaScriptWeb
- 什麼是 Opcache,如何使用 Opcacheopcache
- VNC,什麼是VNC,如何使用VNC?VNC
- Boot Camp是什麼以及如何使用boot
- 是什麼JSON,簡單介紹JSON
- “開源”是什麼,能吃嗎?
- MQTT 保留訊息是什麼?如何使用?MQQT
- 德爾菲技術是什麼意思?如何使用?
- Linux管道命令是什麼?如何使用?Linux
- c++中 -> 是什麼意思,如何使用C++
- 為什麼使用指標比使用物件本身更好?指標物件
- Python 集合是什麼,為什麼應該使用以及如何使用?Python
- 什麼是數字簽名?什麼是數字信封?他們如何使用
- GO是更好的程式語言嗎?Go
- 什麼是Python?好學嗎?Python
- 為什麼GPL是更好的開源許可證?
- Python魔法方法是什麼?如何使用?Python
- JWT 還是 session 根據實際業務使用不是更好嗎JWTSession
- 3分鐘讓你明白JSON是什麼JSON
- 什麼是Docker?為什麼使用docker?Docker
- 為什麼 APISIX Ingress 是比 Traefik 更好的選擇?API
- 你真的理解什麼是死鎖嗎?
- 你知道什麼是路由器嗎?路由器
- 什麼是Python?如何安裝使用Python?Python
- 【譯】什麼是JavaScript generator 以及如何使用它們JavaScript
- Python中eval函式是什麼?如何使用?Python函式
- SaaS是什麼?是訂閱嗎?還是web應用?Web
- 什麼是介面,如何理解
- 為什麼要使用JSON傳輸資訊JSON
- 什麼是字典?Python字典是可變的嗎?Python
- 什麼是介面?為什麼使用介面? 什麼時候使用介面?(轉)
- TypeScript是什麼,為什麼要使用它?TypeScript
- 猜猜這是什麼功能?使用什麼工具?
- 返回的 json 串 sessionId 為什麼是 nullJSONSessionNull
- C++中為什麼使用指標比使用物件本身更好?C++指標物件