按字母排序 JSON 键
在浏览器中把 JSON 对象的键递归地按 A→Z 或 Z→A 排序,数组顺序保持不变。你的 JSON 始终留在本地。
排序 JSON 键完全在你的浏览器中运行。你粘贴的 JSON 在你的设备上被解析并重新序列化,不会上传任何内容到 ArrayKit。
打开 JSON 格式化工具
关于 排序 JSON 键
排序 JSON 键会把一份 JSON 文档中每个对象的键重排为字母顺序,从上到下并一直深入嵌套对象。数组保持元素顺序——只有对象键会移动——因此数据完全相同,只是被规范地排序了。可选择 A→Z 或 Z→A,开启大小写不敏感比较让 Name 和 name 归到一起,并把缩进设为 2 空格、4 空格或制表符。排序后的键让两个配置文件或 API 负载能够干净地对比,帮你发现缺失的字段,并为快照和缓存键提供稳定的规范形式。它为处理设置文件、测试夹具和 API 响应的开发者打造。一切都在你的浏览器中运行,因此你粘贴的 JSON 绝不离开你的设备。
功能特性
- 递归排序嵌套对象中的键,而不只是顶层
- 保留数组元素顺序——只重排对象键
- 切换升序 A→Z 或降序 Z→A 的键顺序
- 大小写不敏感比较,让大写和小写键归到一起
- 为输出选择 2 空格、4 空格或制表符缩进
- 复制排序后的 JSON,或将其下载为 .json 文件
- 当输入不是有效 JSON 时给出清晰的内联错误提示
- 完全在你的浏览器中运行——你粘贴的 JSON 绝不上传
如何使用 排序 JSON 键
- 把你的 JSON 粘贴到输入框
- 选择 A→Z 或 Z→A 并设置缩进宽度
- 如果想让大小写混合的键归到一起,开启大小写不敏感比较
- 复制排序后的 JSON,或将其下载为 .json 文件
示例
输入
{ "name": "Ada", "id": 42, "roles": ["author", "admin"] }
输出
{
"id": 42,
"name": "Ada",
"roles": [
"author",
"admin"
]
}
键被按字母排列,而 roles 数组保持它原来的顺序。
常见错误与故障排除
- 输出保持了我粘贴时的键顺序。 — 该文档在顶层可能是一个 JSON 数组——数组不会被重排。只有对象内部的键会被排序,因此一个裸数组会原样返回。
- 大写键全都排在了小写键之前。 — 那是默认的区分大小写顺序(大写字母排在前)。开启大小写不敏感比较,把 Name 和 name 这类键归到一起。
- 工具在一个配置文件上报告 JSON 无效。 — 去掉末尾多余的逗号、注释和单引号——那些是 JSON5 的特性,标准 JSON 会拒绝它们。修好被标记的位置并粘贴有效的 JSON。
- 我的对象数组里元素仍显示为原来的顺序。 — 这是有意为之:数组顺序带有含义,因此会被保留。数组内部的每个对象确实会各自排序自己的键。
常见问题
- 排序 JSON 键会改变数据吗?
- 不会。排序只重排对象内部的键;每个键、值和数组元素都被保留。结果解析出的数据完全相同——只是以规范的字母顺序书写。
- 嵌套对象的键也会被排序吗?
- 会。排序 JSON 键会递归遍历整份文档,因此嵌套对象里的键以及数组内对象里的键都会被按字母排列,而不只是顶层的键。
- 排序键会重排数组里的项吗?
- 不会。数组顺序常带有含义,因此数组元素保持它们原来的位置。只有对象键会被重排;数组内部的每个对象仍会各自排序自己的键。
- 这里的大小写不敏感键排序是怎样工作的?
- 开启大小写不敏感比较后,键会忽略字母大小写来排序,因此 Name 和 name 会挨在一起。关闭时,大写键排在小写键之前,这是默认的 JSON 字符串顺序。
- 我为什么要把 JSON 键按字母排列?
- 规范的键顺序让两个 JSON 文件能干净地对比,暴露缺失或重复的字段,并给出稳定的快照和缓存键。它还让大型配置文件更易于用肉眼扫读。
- 我排序键时 JSON 会被上传吗?
- 不会。排序 JSON 键完全在你的浏览器中运行。你粘贴的 JSON 在你的设备上被解析、排序并重新序列化,不会发送任何内容到 ArrayKit。
相关工具
全部 ArrayKit 工具