# JSON格式化工具

## 简介

JSON格式化工具是FeHelper提供的一个强大的JSON数据处理工具，它能够帮助开发者快速格式化、美化、压缩和验证JSON数据。该工具支持多种JSON处理功能，包括自动格式化、手动格式化、乱码解码、排序、BigInt处理等，是Web开发中不可或缺的辅助工具。


![popup](static/screenshot/json-format.png)

![popup](static/screenshot/json-format-auto.png)

## 主要功能

### 1. 基础格式化功能
- **自动格式化**：一键将杂乱的JSON数据转换为格式化的、易读的形式
- **手动格式化**：通过格式化按钮手动触发格式化操作
- **压缩功能**：将JSON数据压缩为单行，去除所有不必要的空格和换行
- **JSON验证**：自动检测JSON语法错误，并提供详细的错误信息

### 2. 高级处理功能
- **JSONP支持**：自动识别并处理JSONP格式的数据
- **自动解码**：支持自动解码URL编码和Unicode编码的JSON数据
- **BigInt支持**：正确处理JavaScript中的BigInt类型数据
- **节点编辑**：支持直接编辑格式化后的JSON节点
- **排序功能**：
  - 默认排序：保持原始顺序
  - 升序排序：按键名升序排列
  - 降序排序：按键名降序排列

### 3. 编码转换功能
- **Unicode编码**：支持将JSON中的特殊字符转换为Unicode编码
- **Unicode解码**：支持将Unicode编码转换回原始字符
- **URL解码**：支持解码URL编码的JSON数据

### 4. 界面特性
- **双模式布局**：
  - 左右布局：适合宽屏显示器
  - 上下布局：适合窄屏显示器
- **语法高亮**：使用CodeMirror提供专业的代码编辑体验
- **实时预览**：格式化结果实时显示
- **错误提示**：清晰的错误提示和定位

## 使用说明

### 基本使用
1. 在输入框中粘贴需要格式化的JSON数据
2. 点击"格式化"按钮进行格式化
3. 格式化后的结果会显示在右侧（左右布局）或下方（上下布局）

### 高级功能使用
1. **自动解码**：
   - 勾选"自动解码"选项
   - 粘贴包含编码的JSON数据
   - 工具会自动进行解码和格式化

2. **JSON排序**：
   - 选择排序方式（默认/升序/降序）
   - 点击格式化按钮
   - 结果会按照选择的方式重新排序

3. **节点编辑**：
   - 勾选"节点编辑"选项
   - 点击格式化后的JSON节点
   - 可以直接编辑节点内容

4. **编码转换**：
   - 使用工具栏上的编码转换按钮
   - 支持Unicode编码/解码
   - 支持URL解码

## 使用技巧

1. **快速格式化**：
   - 使用快捷键 `Ctrl + Enter` 快速格式化
   - 支持自动检测页面中的JSON数据

2. **错误处理**：
   - 当JSON格式错误时，工具会显示具体的错误位置
   - 支持自动修复常见的JSON格式问题

3. **大数据处理**：
   - 支持处理大型JSON数据
   - 提供性能优化的处理方式

4. **JSONP处理**：
   - 自动识别JSONP格式
   - 支持提取JSONP中的JSON数据

## 注意事项

1. 处理大型JSON数据时，建议使用压缩模式
2. 编辑JSON时注意保持JSON格式的正确性
3. 使用自动解码功能时，确保原始数据是可解码的
4. 处理BigInt数据时，注意数值的精度问题

## 常见问题

1. **Q: 为什么我的JSON格式化后显示错误？**
   A: 请检查JSON数据是否符合标准格式，特别注意：
   - 所有的键名必须用双引号包围
   - 不能使用单引号
   - 不能有多余的逗号
   - 确保所有的括号都正确配对

2. **Q: 如何处理包含特殊字符的JSON？**
   A: 可以使用Unicode编码功能，将特殊字符转换为Unicode编码，或者使用自动解码功能处理已编码的数据。

3. **Q: 为什么我的BigInt数据在格式化后发生了变化？**
   A: 工具会自动处理BigInt数据，确保数值的精确性。如果发现数值变化，请检查原始数据是否正确。

## 更新日志

### 最新版本
- 支持BigInt类型数据处理
- 优化了大型JSON的处理性能
- 改进了错误提示的准确性
- 新增了自动解码功能
- 优化了界面布局和交互体验

## 反馈与建议

如果您在使用过程中遇到任何问题，或者有改进建议，欢迎通过以下方式反馈：
1. 在GitHub上提交Issue
2. 发送邮件到开发团队
3. 在工具市场页面留言

## 相关工具

- [JSON比对工具](../json-diff.md)：用于比较两个JSON数据的差异
- [代码美化工具](../code-beautify.md)：支持多种编程语言的代码格式化
- [信息编码转换](../en-decode.md)：支持多种编码格式的转换 