gromnan/json-crunch

通过最小化重复并提高压缩性来优化JSON响应。

v1.0.0 2018-07-14 21:30 UTC

This package is auto-updated.

Last update: 2024-08-29 04:43:13 UTC


README

PHP实现node模块graphql-crunch

通过最小化重复并提高压缩性来优化JSON响应。

安装

composer require gromnan/json-crunch

它是如何工作的?

我们使用后序遍历对象图将对象层次结构扁平化为数组。在遍历过程中,我们高效地检查是否之前已遇到过值,包括数组和对象,并在看到它时用其早期出现的位置引用替换它。值只在数组中存在一次。

用法

use function GromNaN\JsonCrunch\crunch;

$data = json_decode('{"a":["a","b","a"],"b":["a","b","a"]}');

$crunched = crunch($data);

echo json_encode($data, JSON_PRETTY_PRINT);

结果

[
    "a",
    "b",
    [0,1,0],
    {"a":2,"b":2}
]

命令行

bin/crunch-json <file>