Skip to content
evara0Public

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

23 Commits

Folders and files

Repository files navigation

JSONFold

一个轻量、可离线使用的 JSON 树形查看器。下载一个 HTML 文件,用浏览器打开即可使用,无需安装、构建或启动服务。

下载与使用

下载 HTML 单文件 · 查看源码 · GitHub 仓库

只需要 json-viewer.html,无需 clone 仓库或下载整个项目。下载链接指向 evara0/jsonfold 仓库 main 分支中的最新文件,首次推送该分支后可用。

  1. 点击“下载 HTML 单文件”,将原始内容保存为 json-viewer.html。如果浏览器直接显示源码,按 Ctrl+S 保存;不要保存 GitHub 的文件预览网页。
  2. 用浏览器打开保存的 HTML 文件,页面会自动加载示例。
  3. 将自己的 JSON 粘贴到输入框,点击“解析并显示”。
  4. 展开节点查看内容,或点击“全部展开”。大树会分批处理,达到单次预算后可再次点击继续。

也可以进入文件页面,点击右上角的 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 文件。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages