# develop-tools
**Repository Path**: manyhtings/develop-tools
## Basic Information
- **Project Name**: develop-tools
- **Description**: rust构建轻量级跨平台客户端。 一款 JSON编辑器 JSON格式化客户端。
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2025-03-13
- **Last Updated**: 2025-08-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# JSON处理工具
一个基于 Tauri 2.0 构建的JSON编辑和处理工具,集成了vanilla-jsoneditor组件,支持JSON数据的编辑、格式化和编辑。
## 应用截图
💡 直观强大的JSON处理体验
基于vanilla-jsoneditor打造的现代化JSON编辑工具,兼具易用性和专业性
📱 主界面
强大易用的JSON编辑器界面,支持多种视图模式
✏️ JSON编辑功能
直观的树状视图编辑,轻松处理复杂JSON数据
📊 数据可视化展示
清晰的数据结构展示,让JSON一目了然
## 功能特点
- ✨ 基于强大的vanilla-jsoneditor组件的JSON编辑器
- 📊 一键将JSON数据导出为Excel文件【规划中】
- 💪 基于Tauri 2.0构建,目前支持macOS,Windows和Linux版本正在规划中
- 🚀 原生性能体验,轻量快速
- 🔍 直观的JSON数据可视化
- 🗂️ 多标签编辑:新建/关闭/重命名/复制、拖拽排序、右键菜单,最多 10 个标签
- 💾 自动保存与恢复:标签与激活状态持久化(localStorage)
- ✨ 使用体验优化:选中标签采用主题色,标签栏更紧凑,与编辑器无缝贴合
- 🧹 扁平化样式:去除标签操作与编辑器工具栏的边框/阴影,更加干净
- 🔒 每标签可独立只读切换,支持脏标识与关闭确认
- 💾 保存策略:默认仅保存到应用缓存(Save),需要写入文件系统时使用菜单“另存为”(Save As)
- 🧰 工具能力:字段提取(支持扁平化)与 JSON→Excel 一键导出
- 🧭 原生菜单与快捷键:File / Edit / Tools / Window 菜单,常用快捷键已就绪
## 适用场景
本工具适用于以下场景:
- 💻 **开发调试**:快速查看、编辑和格式化API响应或配置文件
- 🔧 **数据处理**:清理、转换或整理JSON数据结构
- 📋 **配置管理**:编辑应用程序配置文件,确保符合正确的JSON格式
- 📊 **数据分析**:查看复杂的JSON数据结构,导出为Excel进行进一步分析【规划中】
- 🔍 **错误排查**:检查和修复JSON格式错误
## 技术栈
- **前端**:React、TypeScript、Ant Design
- **后端**:Rust(Tauri)
- **编辑器组件**:vanilla-jsoneditor (由svelte-jsoneditor提供)
- **Excel处理**:xlsxwriter (Rust) 【规划中】
## 详细技术栈
本项目使用了以下优秀的开源组件和库:
### 前端
| 组件 | 版本 | 仓库/文档链接 | 说明 |
| --- | --- | --- | --- |
| [React](https://react.dev/) | ^18.2.0 | [GitHub](https://github.com/facebook/react) | 用户界面构建库 |
| [TypeScript](https://www.typescriptlang.org/) | ^5.2.2 | [GitHub](https://github.com/microsoft/TypeScript) | JavaScript的类型化超集 |
| [Ant Design](https://ant.design/) | ^5.22.3 | [GitHub](https://github.com/ant-design/ant-design) | 企业级UI设计语言和React组件库 |
| [vanilla-jsoneditor](https://github.com/josdejong/svelte-jsoneditor) | ^2.3.2 | [GitHub](https://github.com/josdejong/vanilla-jsoneditor) | 强大的JSON编辑器组件 |
### 桌面应用框架
| 组件 | 版本 | 仓库/文档链接 | 说明 |
| --- | --- | --- | --- |
| [Tauri](https://tauri.app/) | ^2.0 | [GitHub](https://github.com/tauri-apps/tauri) | 构建更小、更快、更安全的桌面应用程序 |
| [@tauri-apps/api](https://tauri.app/v1/api/js/) | ^2.0.1 | [GitHub](https://github.com/tauri-apps/tauri) | Tauri JS API |
| [@tauri-apps/plugin-dialog](https://tauri.app/v1/api/js/dialog) | ^2.2.0 | [GitHub](https://github.com/tauri-apps/plugins-workspace/tree/v1/plugins/dialog) | 显示原生对话框 |
| [@tauri-apps/plugin-fs](https://tauri.app/v1/api/js/fs) | ^2.2.0 | [GitHub](https://github.com/tauri-apps/plugins-workspace/tree/v1/plugins/fs) | 文件系统访问API |
| [@tauri-apps/plugin-shell](https://tauri.app/v1/api/js/shell) | ^2 | [GitHub](https://github.com/tauri-apps/plugins-workspace/tree/v1/plugins/shell) | 执行系统命令 |
### 构建工具
| 组件 | 版本 | 仓库/文档链接 | 说明 |
| --- | --- | --- | --- |
| [Vite](https://vitejs.dev/) | ^5.3.1 | [GitHub](https://github.com/vitejs/vite) | 前端构建工具 |
| [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react) | ^4.2.1 | [GitHub](https://github.com/vitejs/vite-plugin-react) | React插件 |
### 后端 (Rust)
| 组件 | 版本 | 仓库/文档链接 | 说明 |
| --- | --- | --- | --- |
| [serde](https://serde.rs/) | 1.0 | [GitHub](https://github.com/serde-rs/serde) | 序列化和反序列化框架 |
| [serde_json](https://docs.serde.rs/serde_json/) | 1.0 | [GitHub](https://github.com/serde-rs/json) | JSON支持 |
| [xlsxwriter](https://docs.rs/xlsxwriter/) | 0.6.0 | [GitHub](https://github.com/informationsea/xlsxwriter-rs) | Excel文件生成库【规划中】 |
| [tempfile](https://docs.rs/tempfile/) | 3.10.1 | [GitHub](https://github.com/Stebalien/tempfile) | 临时文件创建 |
| [chrono](https://docs.rs/chrono/) | 0.4 | [GitHub](https://github.com/chronotope/chrono) | 日期和时间库 |
## 安装和使用
### 从源码构建
1. 确保你已安装以下依赖:
- Node.js (>= 16)
- Rust (>= 1.70)
- Tauri CLI
2. 克隆仓库并安装依赖:
```bash
git clone
cd develop-tool
npm install
```
3. 开发模式运行:
```bash
npm run tauri dev
```
4. 构建生产版本:
```bash
npm run tauri build
```
### 使用预构建版本
您可以从[发行版页面](https://gitee.com/manyhtings/develop-tools/releases/tag/0.0.1)下载最新的预构建版本:
- **macOS**: 下载 `.dmg` 文件,打开并将应用拖到应用程序文件夹([安装问题?点击这里](docs/macOS安装问题解决指南.md))
- **Windows**: 下载 `.msi` 文件
- **Linux**: 即将推出,敬请期待
> **注意**: 目前仅提供macOS Windows版本 Linux版本正在开发中,将在后续版本中发布。
> **等不及了?** 如果您迫不及待想在Linux上使用,可以按照上方"从源码构建"的说明克隆仓库并自行打包。本项目基于Tauri 2.0构建,您可以参考[Tauri官方文档](https://tauri.app/distribute/)了解如何在不同平台上构建应用。通常只需执行`npm run tauri build`即可在您当前的操作系统上构建适用的安装包。
#### macOS用户注意事项
macOS用户可能会遇到一些与系统安全性相关的安装问题。我们提供了详细的[macOS安装问题解决指南](docs/macOS安装问题解决指南.md),包含以下内容:
- 解决"无法验证开发者"错误
- 处理"应用程序已损坏"提示
- 配置必要的系统权限
- 应用程序签名问题
- 更多疑难解答步骤
## 使用指南
1. **编辑JSON**:在编辑器区域直接编辑或粘贴JSON数据
2. **多标签管理**:
- 新建:点击标签栏的加号“+”
- 重命名:双击标签名或在标签上右键选择“重命名”
- 复制:右键标签选择“复制”(在新标签打开副本)
- 关闭:点击标签上的“×”,或右键选择“关闭/关闭其他/关闭全部”
- 排序:按住标签拖拽调整顺序
- 只读:右键标签选择“设为只读/取消只读”
- 限制:最多同时打开 10 个标签;有未保存更改时关闭将弹出确认
3. **字段提取**(Tools → 字段提取… 或标签栏右侧“漏斗”图标):
- 默认勾选第一条记录的所有顶层字段
- 可选“扁平化嵌套对象”(将 `a: { b: 1 }` 展开为 `a.b: 1`)
- 确定后在“新标签(只读)”中查看表格结果
4. **JSON 转 Excel**(Tools → JSON 转 Excel… 或标签栏右侧“Excel”图标):
- 直接导出:自动按第一条记录推断列为表头
- 选择保存路径后生成 `.xlsx`(工作表名为 `Sheet1`)
5. **保存策略**:
- Save(Cmd/Ctrl+S):写入应用缓存目录(AppCacheDir),不修改标签名
- Save As(Shift+Cmd/Ctrl+S):弹系统对话框,选择任意保存位置
- 说明:应用会在本地持久化标签和激活状态(localStorage),不会自动写入文件系统
## 菜单与快捷键
- File:保存 (Cmd/Ctrl+S)、另存为… (Shift+Cmd/Ctrl+S)、退出 (Cmd/Ctrl+Q)
- Edit:撤销 (Cmd/Ctrl+Z)、重做 (Shift+Cmd/Ctrl+Z)、剪切/复制/粘贴/全选
- Tools:字段提取… (Shift+Cmd/Ctrl+F)、JSON 转 Excel… (Cmd/Ctrl+E)
- Window:最小化 (Cmd/Ctrl+M)、全屏 (Ctrl+Cmd+F)
## 主要功能实现
### JSON编辑器
本应用使用vanilla-jsoneditor组件提供JSON编辑功能,支持以下特性:
- 树状视图和文本视图切换
- 语法高亮
- 自动格式化
- 错误验证
### JSON转Excel【规划中】
规划使用Rust的xlsxwriter库实现JSON到Excel的转换:
- 自动识别JSON数组中的键作为表头
- 将JSON数组数据映射为Excel表格行
- 支持各种数据类型转换
## 项目结构
```
develop-tool/
├── src/ # 前端源码
│ ├── App.tsx # 主应用组件
│ ├── VanillaJSONEditor.tsx # JSON编辑器组件封装
│ └── ...
├── src-tauri/ # Tauri/Rust后端代码
│ ├── src/
│ │ └── main.rs # 主Rust代码(含JSON转Excel实现)
│ ├── icons/ # 应用图标资源
│ │ ├── 32x32.png # 各种尺寸的应用图标
│ │ ├── 128x128.png
│ │ ├── icon.icns # macOS图标
│ │ └── icon.ico # Windows图标
│ ├── Cargo.toml # Rust依赖管理
│ └── tauri.conf.json # Tauri配置
├── screenshots/ # 应用截图(用于README展示)
│ ├── app.png # 主界面截图
│ ├── image.png # JSON编辑功能截图
│ └── image02.png # 数据可视化展示截图
├── docs/ # 文档目录
│ └── macOS安装问题解决指南.md # macOS安装问题解决指南
└── package.json # 前端依赖管理
```
## 应用图标
本应用使用了精美的图标资源,主要包括以下格式:
- **Windows**: icon.ico 和各种尺寸的 Square*.png
- **macOS**: icon.icns
- **Linux/通用**: 各种尺寸的PNG图标 (32x32.png, 128x128.png, 128x128@2x.png 等)
这些图标位于 `src-tauri/icons/` 目录中,可以根据需要进行自定义替换。
## 许可证
本项目采用 [MIT 许可证](LICENSE)。
MIT许可证是一种宽松的软件许可证,简单来说:
- ✅ 可以自由使用、复制、修改、合并、发布、分发、再许可及销售本软件的副本
- ✅ 可以用于商业用途
- ✅ 可以修改源代码并保持私有
- ⚠️ 唯一的限制是必须在所有副本中包含上述版权声明和许可声明
详细条款请查看 [LICENSE](LICENSE) 文件。
## 贡献指南
我们非常欢迎并感谢所有形式的贡献!如果您想为本项目做出贡献,请遵循以下步骤:
1. Fork 本仓库
2. 创建您的特性分支 (`git checkout -b feature/AmazingFeature`)
3. 提交您的更改 (`git commit -m 'Add some AmazingFeature'`)
4. 推送到分支 (`git push origin feature/AmazingFeature`)
5. 打开一个 Pull Request
### 贡献类型
您可以通过多种方式为项目做出贡献:
- 🐛 报告bug
- 💡 提出新功能或改进建议
- 🔍 审查代码
- 📝 改进文档
- 💻 提交代码
## 鸣谢
本项目依赖于以下优秀的开源项目:
- [Tauri](https://tauri.app/) - 提供桌面应用程序框架
- [vanilla-jsoneditor](https://github.com/josdejong/vanilla-jsoneditor) - 提供强大的JSON编辑功能
- [React](https://react.dev/) - 用户界面构建库
- [Ant Design](https://ant.design/) - 企业级UI设计语言和React组件库
- [TypeScript](https://www.typescriptlang.org/) - JavaScript的类型化超集
- [Vite](https://vitejs.dev/) - 前端构建工具
- [xlsxwriter](https://github.com/informationsea/xlsxwriter-rs) - 提供Excel文件创建功能【规划中】
## 联系与支持
如果您在使用过程中遇到任何问题或有任何建议,请通过以下方式联系我们:
- 提交 [Issues](https://github.com/您的用户名/develop-tool/issues)
- 发送邮件至:[522caiji@163.com]
- macOS用户可查阅[安装问题解决指南](docs/macOS安装问题解决指南.md)
我们会尽快回复您的问题和建议。