键名默认按升序重排、数组的顺序不动,这是「JSON格式化」这一页的固定行为。站里没有关闭排序的开关。键名重排不影响数据含义,只改变显示顺序。下面说明实际表现和应对走法。
一、键名重排和数组不动的规则
「JSON格式化」是文档处理四个独立页之一,这一步在浏览器里完成,文件不离开本机,不用登录。
它的排序规则:对 JSON 对象里的键名,按字符编码的升序重新排列。对 JSON 数组,元素顺序原样保留,不做任何调整。
能做的事:美化、压缩、校验、转 CSV、转义、反转义,六个动作。键名升序排列是美化时的附带行为。不能做的事:没有关闭排序的选项。不支持 JSON5、带注释的 JSONC 和 YAML,不做 Schema 校验。
二、重排的实际表现
- 打开 JSON格式化 页。
- 粘贴一段键名不按字母顺序排列的 JSON 文本。
- 选择缩进方式,2 空格、4 空格或 Tab 三档,点击「美化」。
- 输出里对象键名已按升序重新排列,数组里的元素顺序不变。
| 对象输入键序 | 美化后键序 | 数组元素 |
|---|---|---|
| name, age, city | age, city, name | 不动 |
| z, a, m | a, m, z | 不动 |
| 中文键名 | 按 Unicode 码位升序 | 不动 |
| 嵌套对象 | 每层内部都按升序排 | 不动 |
三、为什么说重排不影响含义
JSON 规范里,对象的键是无序的集合。读取方按规范不应该依赖键名的出现顺序来取数据。这一页把键名按升序排是为了输出一致,不会改变数据本身。
但有一种情况需要留意:如果下游程序确实按键序读取,比如按位置取值而不是按键名取值,这在规范上是不合规的写法。美化后键序变了可能让这类程序读到不同的结果。这种情况需要修改下游程序的读取方式,而不是在这一页找排序开关。
四、不想改变键序怎么办
如果只是想压缩掉多余空格而不重排键名,用「压缩」动作。压缩只去掉美化缩进和换行,不改变键名的排列方式。
需要改编码或调整换行格式,可以先在 TXT处理 页调好文本参数,再贴回这一页做格式化。要把表格文本转成 JSON 则走 CSV转换 页,选 JSON 对象数组输出形态。
五、常见问题
问:能不能保留原始键序?
答:这一页没有保留键序的选项。美化后一律按升序排。如果需要不改变键序,用「压缩」动作只做去空格处理。
问:键名排序按的是什么规则?
答:按字符编码升序。英文字母按 A 到 Z 排,大写字母的编码在小写前面;中文键名按 Unicode 码位排列。
问:数组里的对象也会被排序吗?
答:数组元素的位置不动,但数组里每个对象内部的键名仍会被升序重排。外层数组和下层对象是两个不同的处理粒度。
问:手机上能用吗?
答:可以,这一页是网页,手机浏览器直接打开就能粘贴文本操作,文件不离开本机,不用登录。
六、本站入口
这一步在「JSON格式化」页完成,文件不离开本机。美化后的 JSON 如果需要转成表格文本查看,可以用同一页的转 CSV 动作直接导出。