快速- json- 稳定- 字符串
从 https://github.com/epoberezkin/fast-json-stable-stringify 页面存档备份,存于互联网档案馆。 。 。 . 变化包括转换为TypeScript并增加缩进JSON输出的能力.
决定性 JSON.stringify() - 一个更快的版本 @ substack (中文(简体) )'json-稳住-稳住没有 齐声。 。 。 .
您也可以通过自定义比较函数.
实例
var stringify = require('fast-json-stable-stringify');
var obj = { c: 8, b: [{ z: 6, y: 5, x: 4 }, 7], a: 3 };
console.log(stringify(obj));
输出 :
{"a":3,"b":[{"x":4,"y":5,"z":6},7],"c":8}
方法
var stringify = require('fast-json-stable-stringify');
var str = 字符串(obj, 选项)
返回决定性的字符串 str 从对象 obj。 。 。 .
选项
cmp 数据
若为 opts ,您可以提供 opts.cmp 要进行自定义比较
函数用于对象键。 你的职责 opts.cmp 与这些
参数 :
opts.cmp({ key: akey, value: avalue }, { key: bkey, value: bvalue });
例如,要对对象的密钥名称进行排序,按您可以写的倒序排序 :
var stringify = require('fast-json-stable-stringify');
var obj = { c: 8, b: [{ z: 6, y: 5, x: 4 }, 7], a: 3 };
var s = stringify(obj, function (a, b) {
return a.key < b.key ? 1 : -1;
});
console.log(s);
输出字符串中的结果 :
{"c":8,"b":[{"z":6,"y":5,"x":4},7],"a":3}
或者如果你想按反向顺序排序对象值,你可以写:
var stringify = require('fast-json-stable-stringify');
var obj = { d: 6, c: 5, b: [{z:3,y:2,x:1},9], a: 10 };
var s = stringify(obj, function (a, b) {
return a.value < b.value ? 1 : -1;
});
console.log(s);
哪些产出:
{"d":6,"c":5,"b":[{"z":3,"y":2,"x":1},9],"a":10}
周期
过 true 内 opts.cycles 将循环属性字符串为 __cycle__ - 结果不会是 JSON 有效的字符串.
如果没有这个选项, TypeError 将会被扔到循环对象中 .
安装
与 无 ưμ㼯a
npm install fast-json-stable-stringify
基准
要运行基准( 需要节点 6 + ):
node benchmark
结果:
fast-json-stable-stringify x 17,189 ops/sec ±1.43% (83 runs sampled)
json-stable-stringify x 13,634 ops/sec ±1.39% (85 runs sampled)
fast-stable-stringify x 20,212 ops/sec ±1.20% (84 runs sampled)
faster-stable-stringify x 15,549 ops/sec ±1.12% (84 runs sampled)
The fastest is fast-stable-stringify
企业支助
快速- json- 稳定- 字符串包是 Tidelift 企业订阅 - 除了软件维护者提供的支助外,它还为开源软件用户提供集中的商业支助.
安全联络
请使用 电梯安全联络。 。 。 . Tidelift将协调固定和披露。 请不要通过 GitHub 问题报告安全弱点 .