我的应用程序有一个大的对象数组,我对它们进行字符串化并将它们保存到磁盘中。不幸的是,当操作数组中的对象时,有时会替换它们,对象上的属性会以不同的顺序列出(它们的创建顺序?).当我对数组执行 JSON.stringify ()并保存它时,diff 会显示以不同顺序列出的属性,这在尝试用 diff 和合并工具进一步合并数据时非常恼人。
理想情况下,我希望在执行 stringify 之前对对象的属性进行字母顺序排序,或者作为 stringify 操作的一部分。很多地方都有用于操作数组对象的代码,要改变这些代码以便始终按显式顺序创建属性是很困难的。
建议将是最受欢迎的!
一个精简的例子:
obj = {}; obj.name="X"; obj.os="linux";
JSON.stringify(obj);
obj = {}; obj.os="linux"; obj.name="X";
JSON.stringify(obj);
这两个 stringify 调用的输出是不同的,并且显示在我的数据中,但是我的应用程序不关心属性的顺序。这些对象在许多方面和地方被构造。