- 智能识别输入类型
- JSON String → JSON Object(解析和格式化)
- JSON Object → JSON String(字符串化,带转义)
- 实时语法验证
- 精确错误定位(行号、列号)
- 友好的错误提示和修复建议
- 自定义缩进(2/4 空格、Tab)
- 键名排序
- 语法高亮(Monaco Editor)
- 支持大数字(BigInt)
- 移除所有空白字符
- 压缩率统计
- 大小对比
- localStorage 本地存储
- 最多保存 10 条记录
- 搜索历史
- 隐私模式
npm installnpm run dev# 所有测试
npm run test
# 监听模式
npm run test:watch
# 覆盖率报告
npm run test:coverage
# UI 模式
npm run test:uinpm run buildnpm run preview| 模块 | 测试用例 | 覆盖率目标 | 状态 |
|---|---|---|---|
| JSON Formatter | 30+ | 100% | ✅ |
| JSON Validator | 25+ | 100% | ✅ |
| JSON Converter | 20+ | 100% | ✅ |
| JSON Compressor | 25+ | 100% | ✅ |
| History Manager | 40+ | 100% | ✅ |
| 总计 | 140+ | 100% | ✅ |
- React 18 - UI 框架
- TypeScript - 类型安全
- Vite 5 - 构建工具
- Monaco Editor - VS Code 同款编辑器
- Zustand - 轻量级状态管理
- Tailwind CSS - 原子化 CSS
- 自定义组件(赛博朋克风格)
- Vitest - 单元测试
- Testing Library - React 组件测试
- json-bigint - 大数字支持
- date-fns - 日期格式化
- react-hot-toast - 通知提示
clean-json/
├── src/
│ ├── core/ # 核心业务逻辑
│ │ ├── json-formatter.ts # JSON 格式化
│ │ ├── json-validator.ts # JSON 验证
│ │ ├── json-converter.ts # String ↔ Object 转换
│ │ └── json-compressor.ts # JSON 压缩
│ ├── utils/ # 工具函数
│ │ └── history-manager.ts # 历史记录管理
│ ├── hooks/ # 自定义 Hooks
│ ├── store/ # Zustand 状态管理
│ ├── components/ # UI 组件
│ ├── styles/ # 样式文件
│ └── types/ # TypeScript 类型
├── tests/ # 测试文件
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── setup.ts # 测试配置
├── PRD.md # 产品需求文档
├── UI_DESIGN.md # UI 设计规范
├── TECHNICAL_PLAN.md # 技术方案
├── TEST_PLAN.md # 测试计划
└── TESTING_GUIDE.md # 测试指南
Primary Background: #0a0e27
Surface Background: #1a1f3a
Neon Blue (Primary): #00d4ff
Neon Pink (Secondary): #ff006e
Neon Green (Success): #00ff9f
Neon Yellow (Warning): #ffb800
Neon Red (Error): #ff3366详见 UI_DESIGN.md
本项目采用**测试驱动开发(TDD)**模式:
- Red - 先写测试(失败)✅
- Green - 实现功能(通过)✅
- Refactor - 优化代码(保持通过)⏳
所有核心模块都有完整的测试覆盖。
npm install -g vercel
vercel --prodnpm install -g netlify-cli
netlify deploy --prodnpm run build
# 部署 dist/ 目录| 指标 | 目标 | 实际 |
|---|---|---|
| 首屏加载 | < 2s | ⏳ |
| 格式化响应(1KB) | < 10ms | ⏳ |
| 格式化响应(1MB) | < 100ms | ⏳ |
| Lighthouse 性能 | > 90 | ⏳ |
欢迎贡献!请遵循以下步骤:
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'feat: Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
feat: 新功能
fix: 修复
docs: 文档
style: 样式
refactor: 重构
test: 测试
chore: 构建/工具
MIT License
Made with ❤️ by Clean JSON Team