一个轻量、可离线使用的 JSON 树形查看器。下载一个 HTML 文件,用浏览器打开即可使用,无需安装、构建或启动服务。
下载 HTML 单文件 · 查看源码 · GitHub 仓库
只需要 json-viewer.html,无需 clone 仓库或下载整个项目。下载链接指向 evara0/jsonfold 仓库 main 分支中的最新文件,首次推送该分支后可用。
- 点击“下载 HTML 单文件”,将原始内容保存为
json-viewer.html。如果浏览器直接显示源码,按Ctrl+S保存;不要保存 GitHub 的文件预览网页。 - 用浏览器打开保存的 HTML 文件,页面会自动加载示例。
- 将自己的 JSON 粘贴到输入框,点击“解析并显示”。
- 展开节点查看内容,或点击“全部展开”。大树会分批处理,达到单次预算后可再次点击继续。
也可以进入文件页面,点击右上角的 Download raw file 按钮单独下载。GitHub 的原始文件查看与下载方法见官方说明。
下载后可断网使用。当前输入方式是粘贴文本,尚不支持直接选择或拖入 JSON 文件。
| 功能 | 行为 |
|---|---|
| JSON 树形查看 | 支持对象、数组、字符串、数字、布尔值和 null,容器显示类型与成员数量 |
| 展开与折叠 | 容器默认折叠,首次展开时按需生成子节点;折叠按钮支持 Enter 和空格 |
| 字符串内嵌 JSON | 自动识别字符串中的有效 JSON 对象或数组,显示 parsed from string 来源标记 |
| 数字原文保留 | 保留大整数、指数、小数末尾零及 -0 的输入写法,不静默改值 |
| 长文本查看与复制 | 超过 200 个 Unicode 码点时显示预览,可展开全文或复制完整解码字符串 |
| 行内提示 | 在输入框下方汇总数字精度/范围风险和长文本预览省略情况 |
| 大树分批展示 | 按需加载,达到节点或深度限制时明确提示尚有内容未展示 |
例如,输入中的 9007199254740993、1e400、1.2300 会按原文显示。复制字符串时得到的是完整解码值,不包含界面的引号或省略号。
- JSON 在当前浏览器页面中处理,应用不会上传、持久化或对外发送输入内容。
- 页面不加载外部脚本、字体、统计服务或 CDN 资源。
- 用户提供的键和值作为文本展示,不作为 HTML 执行。
- 只有主动点击复制时才尝试写入剪贴板;浏览器拒绝或不支持自动复制时,提供完整文本供手动复制。
- 只接受严格 JSON;不支持 YAML、JSON5、注释、尾逗号或自动修复非法 JSON。解析失败时显示错误信息。
- 这是查看器,尚无搜索、路径复制、文件导入、编辑后导出、CLI 或模型修复入口。
- 每次加载最多生成 100 个直接子项;“全部展开”每次最多新增 1000 个数据节点。全局展示上限为 5000 个数据节点,最大展示深度为 128。
- 分批渲染限制的是展示量,输入解析仍在主线程完成;不承诺任意大小文件都能流畅处理。
- 本地 HTML 中的系统剪贴板权限取决于浏览器,自动复制不可用时请使用手动复制入口。
以下为待规划方向,尚未实现,也不代表版本或交付时间承诺:
- 本地文件选择与拖拽导入,以及历史 JSON 文件的回归验证。
- 可选的本地服务启动方式,同时保留单文件直接打开的入口。
- 竞品分析,评估搜索定位、错误提示等交互改进。
- YAML(
.yml/.yaml)解析。 - 用户主动触发的大模型非法 JSON 修复,核对修复差异后再采用。
- CLI 简洁版。
应用入口为 json-viewer.html,HTML、CSS 和 JavaScript 均在该文件中。修改后用浏览器重新打开或刷新即可,无应用运行依赖和构建流程。
已有测试记录包含 40 项纯逻辑、模拟 DOM 或静态回归通过,以及用户确认的整体验收。模拟结果不等同于真实浏览器测试;尚未留齐的浏览器布局、原生键盘、系统剪贴板和性能测量证据见验收记录。
在仓库根目录运行以下两组测试,只需 Node.js:
node tests/preserve-json-numbers/run.cjs
node tests/support-full-string-values/run.cjs树渲染和集成测试另需开发依赖 [email protected]。可安装到项目外的临时目录,再运行:
$testDeps = Join-Path ([System.IO.Path]::GetTempPath()) 'jsonfy-test-deps'
npm install --prefix $testDeps linkedom@0.18.14 --no-audit --no-fund
$env:JSONFY_TEST_MODULES = Join-Path $testDeps 'node_modules'
node tests/improve-tree-rendering/run.cjs
node evals/run-integration.cjs测试脚本会更新仓库内的测试报告。真实浏览器验证请使用手动验收清单,测试数据与记录见 evals/。
本项目使用 OpenSpec 管理需求变更,应用本身不依赖 OpenSpec。开发流程使用 @fission-ai/[email protected];修改功能前阅读 AGENTS.md、项目配置和已实现规范。新增功能或行为变更先创建 change,规范检查命令为:
openspec validate --all --strict --no-interactive| 路径 | 内容 |
|---|---|
json-viewer.html |
下载后即可独立使用的应用 |
openspec/ |
当前功能规范及变更归档 |
tests/ |
自动回归脚本及结果 |
evals/ |
集成验证、测试样本与手动验收材料 |
docs/ |
可用性评估、改进记录与历史测试报告 |
.agents/skills/ |
项目开发协作技能 |
当前仓库尚未添加 LICENSE 文件。