> For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt.

# JSON 排序与分组

[JSON 排序与分组](https://tools.newzone.top/zh/json-sort-classify) 把混乱的 JSON 数组按规则重排。核心是一套"单字段排序"策略；再外加一个可选的"按字段分组"包裹——**两者复用同一套排序策略，不用学两遍**。

![JSON 排序与分组工具界面](/img/json-sort-classify-zh.webp "JSON 排序与分组工具使用界面")

:::tip 30 秒上手

1. 粘贴或上传 JSON 数组
2. 选 **排序方式**（自定义顺序 / 数值升序 / 数值降序）
3. 填 **排序字段**（按哪个 key 的值排，如 `name`、`price`）
4. （可选）填 **分组字段** —— 想先分桶就填，否则留空对整数组排序
5. 点 **处理** —— JSON 数组按规则重排

:::

## 工作方式

**分组字段（可选）**

- 留空：对整个数组做一次排序
- 填写：按该字段把元素分桶（桶按"首次出现"顺序排列），组内再排序

**排序方式 + 排序字段** 始终生效，无论是否分组。三种策略：

| 策略    | 说明                                          |
| ----- | ------------------------------------------- |
| 自定义顺序 | 下方文本框按行写出期望顺序。**列表里没出现的值、以及空列表**，都会保持首次出现顺序 |
| 数值升序  | 按 `排序字段` 的数值从小到大                            |
| 数值降序  | 按 `排序字段` 的数值从大到小                            |

## 示例一：单字段自定义排序

```json
[{ "name": "苹果" }, { "name": "香蕉" }, { "name": "橙子" }]
```

让顺序变为"香蕉、苹果、橙子"：

- 分组字段：留空
- 排序方式：自定义顺序
- 排序字段：`name`
- 自定义顺序：

```
香蕉
苹果
橙子
```

## 示例二：先分组，组内按数值升序

```json
[
  { "type": "水果", "price": 5 },
  { "type": "饮料", "price": 3 },
  { "type": "水果", "price": 2 },
  { "type": "饮料", "price": 8 }
]
```

按 `type` 分组，组内按 `price` 从小到大：

- 分组字段：`type`
- 排序方式：数值升序
- 排序字段：`price`

结果：水果先出现所以排在前（price 升序），饮料在后（price 升序）。

## 三种常见用法

- **仅分组，不重排组内**：分组字段 = 类别键；策略选"自定义顺序"，自定义顺序留空 → 组内保持原始顺序。
- **按字段分组再按另一字段排序**：分组字段 = 类别键；策略选数值升/降序，排序字段 = 数值键。
- **全局自定义顺序**：分组字段留空；策略选"自定义顺序"，把期望顺序一行一个写进文本框。

## 其他

- **文件上传**：拖放 JSON 文件，免去复制粘贴。
- **JSONPath**：字段输入支持嵌套路径（如 `zh.name`）。
- **导出**：结果可直接复制或下载。
