Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

JSON Workbench

一个可直接在浏览器中运行的 JSON 工作台,集格式化、结构分析、差异对比、JSON Schema、TypeScript 和 Mock 数据生成于一体。

本地处理 · 无上传 · 无广告 · 无埋点 · 零运行时依赖

安全与隐私

JSON Workbench 的设计目标是让敏感 JSON 不离开当前浏览器:

  • 所有解析、格式化、对比和转换都在浏览器内存中完成。
  • 源码不包含 fetch、XHR、WebSocket、统计 SDK、广告脚本或第三方 CDN。
  • 不会把输入内容上传到服务器,也不会写入 Cookie 或 localStorage
  • 文件导入使用浏览器 FileReader,只读取用户主动选择的本地文件。
  • 下载使用本地 Blob URL,复制优先使用浏览器剪贴板 API。
  • 窗口备注只保存在当前标签页的 sessionStorage 中;关闭标签页后由浏览器清理。
  • JSON Schema 的 $ref 仅解析当前文档内以 #/ 开头的引用,不请求远程地址。
  • 页面底部的 GitHub 仓库是唯一外部链接,只有用户主动点击后才会打开。

快速使用

无需安装、注册或构建:

  1. 在线使用。
  2. 下载或克隆仓库,双击 index.html使用。

如果浏览器限制 file:// 页面的剪贴板能力,可使用任意静态文件服务器打开本目录;这不会改变应用的本地处理方式。

主要功能

JSON 工具

  • 支持普通 JSON 与 JSON Schema转换。
  • 格式化、压缩、递归 Key 排序、复制、下载和本地文件导入。
  • 显示语法错误位置、连续行号、行数和 UTF-8 文件大小。
  • 结构树与源码双向同步,支持新增、删除、重命名、类型切换和节点路径复制。
  • 从 JSON 样本生成 JSON Schema、TypeScript 定义和确定性 Mock 数据。
  • 从 JSON Schema 生成 TypeScript 与 Mock。

JSON 对比

  • 对象按 Key 无序比较,数组按索引有序比较。
  • 识别新增、删除、值修改和类型变化,并使用标准 JSON Pointer 表示路径。
  • 支持导入、格式化、压缩、复制和清空。
  • 报告支持按差异类型筛选,并在两侧源码中同步显示行级高亮。

标签页窗口备注可帮助区分同时打开的多个工作台。

开发与验证

项目不需要安装 npm 依赖。package.json 只提供统一的维护命令:

npm test

该命令使用 Node.js 自带的 --check 检查 src/tests/scripts/ 中的全部 JavaScript。

DOM 与核心行为测试可直接打开 tests/index.html 运行;测试页同样不加载第三方框架。

目录结构

.
├── index.html                         # 应用结构、SVG 图标精灵和脚本加载入口
├── assets/
│   ├── css/styles.css                 # 设计令牌、布局、组件状态和响应式样式
│   └── icons/favicon.svg              # 本地站点与品牌图标
├── src/
│   ├── app.js                         # 应用初始化、视图切换、通知和窗口备注
│   ├── core/
│   │   ├── json-utils.js              # JSON 解析、序列化、类型、大小和排序工具
│   │   ├── diff-engine.js             # 无 DOM 的结构化差异算法
│   │   └── json-converter.js          # Schema、TypeScript 与 Mock 转换算法
│   └── ui/
│       ├── file-actions.js            # 本地导入、下载和剪贴板适配
│       ├── tree-editor.js              # 可编辑结构树组件
│       ├── editor-panel.js             # 共享源码输入与结构分析协调
│       ├── diff-panel.js               # 双栏对比、高亮和报告交互
│       └── unified-converter-panel.js  # 输入识别与五类转换结果协调
├── tests/
│   ├── index.html                     # 无框架浏览器测试入口
│   └── browser-tests.js               # 核心算法和树编辑器断言
├── scripts/
│   ├── check-syntax.js                 # 零依赖 JavaScript 语法检查器
│   └── check-local-links.js            # HTML 本地资源断链检查器
├── package.json                        # 项目元数据和维护命令
├── .gitignore                          # 依赖、缓存、密钥和本地工具排除规则
├── .gitattributes                      # 跨平台文本换行与二进制文件规则
├── LICENSE                             # MIT 许可证
└── README.md

技术与输入约定

  • 仅接受标准 JSON,不支持注释、尾随逗号、NaNInfinityundefined
  • 所有脚本使用 IIFE,并只挂载到 window.JsonWorkbench 命名空间。
  • 不使用 ES Module,确保经典脚本可按依赖顺序从 file:// 加载。
  • 数组顺序始终保留;Key 排序只作用于对象。
  • 生成结果是确定性的:同一输入会产生相同 Schema、TypeScript 和 Mock。
  • 建议使用现代版本的 Chrome、Edge 或 Firefox。

许可证

Apache 2.0

About

本地运行、零运行时依赖、无上传与无广告的 JSON 格式化、对比和转换工作台

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages