键名默认按升序重排、数组的顺序不动,这是「JSON格式化」这一页的固定行为。站里没有关闭排序的开关。键名重排不影响数据含义,只改变显示顺序。下面说明实际表现和应对走法。

一、键名重排和数组不动的规则

「JSON格式化」是文档处理四个独立页之一,这一步在浏览器里完成,文件不离开本机,不用登录。

它的排序规则:对 JSON 对象里的键名,按字符编码的升序重新排列。对 JSON 数组,元素顺序原样保留,不做任何调整。

能做的事:美化、压缩、校验、转 CSV、转义、反转义,六个动作。键名升序排列是美化时的附带行为。不能做的事:没有关闭排序的选项。不支持 JSON5、带注释的 JSONC 和 YAML,不做 Schema 校验。

二、重排的实际表现

  1. 打开 JSON格式化 页。
  2. 粘贴一段键名不按字母顺序排列的 JSON 文本。
  3. 选择缩进方式,2 空格、4 空格或 Tab 三档,点击「美化」。
  4. 输出里对象键名已按升序重新排列,数组里的元素顺序不变。
对象输入键序美化后键序数组元素
name, age, cityage, city, name不动
z, a, ma, m, z不动
中文键名按 Unicode 码位升序不动
嵌套对象每层内部都按升序排不动

三、为什么说重排不影响含义

JSON 规范里,对象的键是无序的集合。读取方按规范不应该依赖键名的出现顺序来取数据。这一页把键名按升序排是为了输出一致,不会改变数据本身。

但有一种情况需要留意:如果下游程序确实按键序读取,比如按位置取值而不是按键名取值,这在规范上是不合规的写法。美化后键序变了可能让这类程序读到不同的结果。这种情况需要修改下游程序的读取方式,而不是在这一页找排序开关。

四、不想改变键序怎么办

如果只是想压缩掉多余空格而不重排键名,用「压缩」动作。压缩只去掉美化缩进和换行,不改变键名的排列方式。

需要改编码或调整换行格式,可以先在 TXT处理 页调好文本参数,再贴回这一页做格式化。要把表格文本转成 JSON 则走 CSV转换 页,选 JSON 对象数组输出形态。

五、常见问题

问:能不能保留原始键序?
答:这一页没有保留键序的选项。美化后一律按升序排。如果需要不改变键序,用「压缩」动作只做去空格处理。

问:键名排序按的是什么规则?
答:按字符编码升序。英文字母按 A 到 Z 排,大写字母的编码在小写前面;中文键名按 Unicode 码位排列。

问:数组里的对象也会被排序吗?
答:数组元素的位置不动,但数组里每个对象内部的键名仍会被升序重排。外层数组和下层对象是两个不同的处理粒度。

问:手机上能用吗?
答:可以,这一页是网页,手机浏览器直接打开就能粘贴文本操作,文件不离开本机,不用登录。

六、本站入口

这一步在「JSON格式化」页完成,文件不离开本机。美化后的 JSON 如果需要转成表格文本查看,可以用同一页的转 CSV 动作直接导出。