當您在瀏覽器標籤中查看 JSON 時,Chrome 擴充功能會自動格式化 JSON。
json
,因此您可以在控制台中檢查它*自 Manifest v3 以來,在控制台中輸入
json
不起作用。如果您需要解決方法,請將此程式碼段貼到控制台中:json = JSON . parse ( document . getElementById ( "jsonFormatterRaw" ) . querySelector ( "pre" ) . innerText )
一些用於測試它的 JSON 文件:https ://callumlocke.github.io/json-formatter/
選項 1(建議) - 從 Chrome 線上應用程式商店安裝。
選項 2 – 從原始碼安裝(見下文)。
要求: Deno(現在是 Node)。
初始設定:
pnpm i
以取得 chrome 的 TypeScript 類型(如果您願意,也可以使用npm i
)"deno.enablePaths": ["tasks"]
。建構它:
deno task build
每當文件更改時建置和重建:
deno task dev
將本機版本安裝到 Chrome
chrome://extensions
dist
資料夾。 這是 JavaScript 的限制,因此也是 Web 瀏覽器解釋的 JSON 的限制。
Number.MAX_SAFE_INTEGER
( 2^53 - 1
或9007199254740991
)的值都會向下調整到該數字。Number.MIN_SAFE_INTEGER
以下的任何內容( -2^53 + 1
或-9007199254740991
)都會調整到該數字。這不是 JSON Formatter 做的,而是 V8 中的原生JSON.parse
。 JSON Formatter 向您顯示解析後的值,與您在 JavaScript 中載入 JSON 後看到的內容完全相同。
如果您的 API 端點確實需要表示 JavaScript 安全範圍之外的數字,則應該將它們作為 strings 引用。
您在 JSON Formatter 中看到的是已解析物件/陣列的表示。這與 JavaScript 中的Object.keys( JSON.parse(json) )
所得到的順序相同。
從歷史上看,JavaScript 標準明確指出物件鍵可以按任何順序迭代,V8 透過將數字字串鍵(如"1"
或"99999"
)移到頂部來促進小的效能優化,從而利用了這一點。此 V8 實作細節已成為標準化。
目前,您最好的選擇是僅使用“Raw”按鈕來查看原始 JSON。這是伺服器發送的內容。 “Parsed”按鈕代表您將從JSON.parse
獲得的內容。
將來,JSON Formatter 可能會從使用JSON.parse
切換到自訂解析器(如果效能允許),以便檢測值何時通過解析「更改」並顯示適當的警告。