dcblogdev/php-find-and-replace-json

Find and replace keys or values in json or arrays

v1.1.2 2022-07-20 08:05 UTC

This package is auto-updated.

Last update: 2024-10-21 03:27:44 UTC


README

Latest Version on Packagist Total Downloads

Logo

Takes a JSON payload and replaces either a key or value from a provided array.

Install

Install via Composer

composer require dcblogdev/php-find-and-replace-json

Usage

Provide a JSON array and an array containing values to replace.

Create an instance of FindAndReplaceJson call replace and pass in the JSON array and array of replacing values.

JSON is returned with the replaced values. Keys can also be replaced by specifying named keys in $replaces array.

$payload = json_encode([
    'name'   => 'Joe Bloggs',
    'age'   => 23,
    'location' => 'London',
]);

//let's replace the values for age and location
$replaces = [
    'age' => 45, 
    'location' => "Manchester"
];

$runner = new FindAndReplaceJson();
return $runner->replace($payload, $replaces);

Result:

{
  "name": "Joe Bloggs",
  "age": "45",
  "location": "Manchester"
}

By default, JSON is expected but a normal array can be used by passing false as the third argument to FindAndReplaceJson. When the third argument ($isJson) is set to false FindAndReplaceJson expects an array and will return an array.

Contributing

Contributions are welcome and will be fully credited.

Contributions are accepted via Pull Requests on Github.

Pull Requests

  • Document any change in behaviour - Make sure the readme.md and any other relevant documentation are kept up-to-date.

  • Consider our release cycle - We try to follow SemVer v2.0.0. Randomly breaking public APIs is not an option.

  • One pull request per feature - If you want to do more than one thing, send multiple pull requests.

Running Tests

To run unit tests, simply execute the following command in your console:

vendor/bin/phpunit

Security

If you discover any security related issues, please email dave@dcblog.dev email instead of using the issue tracker.

License

Please see the license file for more information.