rygilles / smart-json-reducer
Helper to reduce JSON objects size applying truncates on string fields using weights
Installs: 26 123
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 2
Forks: 0
Open Issues: 0
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
Helper to reduce JSON objects size applying truncates on string fields using weights.
Requirements
- PHP >= 5.5
Install
Via Composer:
$ composer require rygilles/smart-json-reducer
Basic usage of smart-json-reducer
Important : The resulting JSON inner object values will be converted to array (Optimizations and fixes to come...)
The JSON string is not modified if the $maxSize
size (in bytes) is not reached.
$weights
parameter must be an array with "dot style" path as key and weight as value (normalized automatically).
The first version of this library doe not re-attribute gained space to others fields and final JSON string size will be significantly reduced. (Optimizations and fixes to come...)
<?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);
Tests
phpUnit is required (dev dependency)
Use this command to run test suite
composer test
License
smart-json-reducer
is licensed under the MIT License - see the LICENSE file for details