rygilles / smart-json-reducer
此软件包已被弃用,不再维护。未建议替代软件包。
通过使用权重截断字符串字段来减少JSON对象大小的助手
dev-master
2018-11-08 14:33 UTC
Requires
- php: >=5.5
Requires (Dev)
- fzaninotto/faker: ^1.8
- phpunit/phpunit: ^4.8
This package is auto-updated.
Last update: 2023-11-29 02:17:10 UTC
README
通过使用权重截断字符串字段来减少JSON对象大小的助手。
要求
- PHP >= 5.5
安装
通过 Composer
$ composer require rygilles/smart-json-reducer
smart-json-reducer
的基本用法
重要:结果JSON内部对象值将被转换为数组(待优化和修复...)
如果没有达到 $maxSize
大小(以字节为单位),则不会修改JSON字符串。
$weights
参数必须是一个数组,键为“点样式”路径,值为权重(将自动归一化)。
此库的第一个版本不会将节省的空间重新分配给其他字段,最终的JSON字符串大小将显著减小。(待优化和修复...)
<?php // This file is generated by Composer require_once __DIR__ . '/vendor/autoload.php'; $foo = new \stdClass(); $foo->foo1 = 'Sapiente repellat consectetur tempore ut omnis error voluptate ipsum. ' . 'Cum nihil temporibus vel sunt deserunt nisi unde. Ipsa aperiam qui sed harum molestiae qui consectetur. ' . 'Commodi voluptatem maiores'; $foo->foo2 = 'Eligendi officiis sed aspernatur totam quia explicabo. ' . 'Doloribus eum quisquam officiis. Error pariat'; $foo->foo = [ 'bar' => 'Non qui molestias aliquam laboriosam. Nulla omnis ', 'bar2' => 'Ut rerum velit eum commodi. Qui ea et enim cupiditate. Sequi nisi iure qui ' ]; $maxSize = 200; $weights = [ 'foo1' => 2, 'foo2' => 5, 'foo.bar' => 3, ]; // {"foo1":"Sapiente repellat consectetur tempore ut omnis error voluptate ipsum. Cum nihil temporibus vel sunt deserunt nisi unde. Ipsa aperiam qui sed harum molestiae qui consectetur. Commodi voluptatem maiores","foo2":"Eligendi officiis sed aspernatur totam quia explicabo. Doloribus eum quisquam officiis. Error pariat","foo":{"bar":"Non qui molestias aliquam laboriosam. Nulla omnis ","bar2":"Ut rerum velit eum commodi. Qui ea et enim cupiditate. Sequi nisi iure qui "}} $json = \json_encode($foo); // {"foo1":"Sapiente repell","foo2":"Eligendi officiis sed aspernatur totam","foo":{"bar":"Non qui molestias aliqu","bar2":"Ut rerum velit eum commodi. Qui ea et enim cupiditate. Sequi nisi iure qui "}} $resultJson = \Rygilles\SmartJsonReducer\Reducer::reduce($json, $maxSize, $weights);
测试
phpUnit 是必需的(开发依赖项)
使用此命令运行测试套件
composer test
许可证
smart-json-reducer
在 MIT 许可证下授权 - 有关详细信息,请参阅 LICENSE 文件