当您在浏览器选项卡中查看 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
切换到自定义解析器(如果性能允许),以便检测值何时通过解析“更改”并显示适当的警告。