JSON—JavaScript Object Notation—是用于結構化數據交換的無處不在的基於文本的格式。它由IETF作為RFC 8259和Ecma International作為ECMA-404共同標準化,它們共同定義了為現代API、日誌、配置和數據庫提供支持的緊湊、與語言無關的語法。
JSON值是對象、數組、字符串、數字或字面量true、false或null之一;對象將字符串映射到值,數組則包含有序的值——結構字符周圍允許有无关紧要的空白(RFC 8259,ECMA-404)。儘管JSON源於JavaScript,但它與語言無關,幾乎在任何地方都受支持(MDN: JSON)。在線路上,事實上的和推薦的編碼是 UTF-8(RFC 8259 §8.1)。為了額外的互操作性安全,I-JSON配置文件(RFC 7493)收緊了關於編碼和數值範圍的規則。
在JavaScript中,全局JSON對象公開了兩個主力:JSON.parse(帶有一個可選的reviver)和JSON.stringify(帶有用於美化打印的replacer/spacing),如MDN上所記錄(parse,stringify)。
JSON的數字語法是十進制的,但規範並未規定精度或整數/浮點數的區別。實現方式自行選 擇如何表示它們(RFC 8259 §6)。在JavaScript和Node.js中,Number是IEEE-754雙精度,這意味著只有在[−(2^53−1), 2^53−1]範圍內的整數才是完全安全的——參見Number.MAX_SAFE_INTEGER和BigInt類型。這就是為什麼公共API通常將ID作為字符串傳輸並明確驗證“安全整數”的原因。
隨著使用的成熟,出現了用於尋址和就地修改JSON的標準。JSON指針(RFC 6901)是一種微小的、斜杠分隔的語法,用於定位值(例如,/a/b/0),並為~和/提供了轉義規則。JSON補丁(RFC 6902)將部分更新建模為有序操作(add、remove、replace、move、copy、test),並以application/json-patch+json的形式傳輸。對於更簡單的差異,JSON合併補丁(RFC 7386)使用文檔形狀的合併:存在的字段被添加/替換;將字段設置為null會刪除它。許多框架都原生支持這兩種形式中的一種或兩種。
JSON本身是無模式的,但生態系統依賴於模式進 行驗證、文檔編制和代碼生成。JSON模式2020-12系列規定了諸如type、properties、items和組合關鍵字等约束,并与OpenAPI 3.1保持一致。對於以代碼生成為中心的工作流,JSON類型定義(RFC 8927)提供了一種故意降低表達能力的語言,可以可預測地映射到主流類型系統。
傳統的JSON期望每個有效負載有一個完整的文本,這使得流式處理日誌和長壽命響應變得複雜。有兩種模式可以提供幫助:
application/json-seq。當帶寬或速度占主導地位時,“二進制JSON”格式在保留JSON數據模型的同時,用效率換取了人類可讀性:
因為JSON只是文本,所以大多數風險來自於您如何傳輸和處理它:
<script>請求數據)是CORS之前的跨域請求變通方法,但很危險——它會執行任意腳本。請優先使用帶有真實application/json響應的CORS(OWASP: JSONP Abuse)。JSON在RFC 4627 (2006)下首次亮相;註冊的媒體類型是application/json,其規範現在指向RFC 8259。由於UTF-8是公共互聯網上的默認設置,因此JSON響應上的“charset”參數通常是不必要的。
開發人員通常希望在配置文件中使用註釋、尾隨逗號或單引號字符串。這超出了標準JSON的範圍,但JSON5為人工編輯的文件提供了一個文檔齊全的超集。除非您控制兩端,否則避免通過公共API發送JSON5。
JSON的成功來自於其小巧的表面積、廣泛的語言支持以及一系列相鄰標準——指針、補丁、模式、序列——這些標準涵蓋了分佈式系統的混亂現實。理解基礎知識(語法、編碼、數字),依靠正確的相鄰標準,它將繼續在各種堆棧和服務中帶來紅利(RFC 8259,ECMA-404,RFC 6901,RFC 6902,RFC 7386,JSON Schema,JTD,RFC 7464,NDJSON)。
JSON(JavaScript物件表示法)是一種輕量級的資料交換格式,易於人類閱讀和編寫,也易於機器解析和生成。它廣泛用於在Web應用程式中傳輸資料。
格式化JSON透過新增適當的縮排和換行使其易於人類閱讀。這在處理縮小或壓縮的JSON資料、偵錯或審查API回應時特別有用。
JSON驗證檢查您的JSON字串是否符合JSON規範。它識別語法錯誤,如缺少逗號、未閉合的括號或不當的引號,幫助您及早發現錯誤。
程式碼檢視將格式化的JSON顯示為帶有語法醒目提示的文字,類似於在程式碼編輯器中的顯示方式。樹狀檢視將JSON呈現為互動式、可摺疊的結構,您可以在其中展開和摺疊巢狀的物件和陣列。
是的!所有JSON格式化和驗證都完全在您的瀏覽器中進行。您的資料永遠不會離開您的電腦,確保完 全的隱私和安全。
是的,您可以使用「開啟檔案」按鈕上傳JSON檔案。該工具將讀取檔案並立即顯示格式化的輸出。
常見的JSON錯誤包括:鍵值對之間缺少逗號、對字串使用單引號而不是雙引號、尾隨逗號、未閉合的括號或大括號以及未加引號的鍵。
是的,使用「複製」按鈕將格式化的JSON複製到剪貼簿。這對於將清理後的JSON貼上到程式碼或文件中很有用。