There is no license information available for the latest version (v0.3) of this package.

v0.3 2015-05-07 16:53 UTC

This package is auto-updated.

Last update: 2022-07-20 04:47:15 UTC


PlumJsons includes readers, writers and converters for JSON strings and files. Plum is a data processing pipeline for PHP.

Build Status Windows Build status Scrutinizer Code Quality Code Coverage StyleCI

Developed by Florian Eckerstorfer in Vienna, Europe.



  • JsonFileReader reads a .json file from disk and decodes it
  • JsonReader decodes a JSON string


  • JsonFileWriter encodes an object/array into JSON and saves it to disk
  • JsonWriter encodes an object/array into JSON and returns the string


  • JsonDecodeConverter takes a JSON string and decodes it
  • JsonEncodeConverter takes an object/array and encodes it to JSON


You can install Plum using Composer.

$ composer require plumphp/plum-json


Please refer to the Plum documentation for more information about Plum in general.


Plum\PlumJson\JsonReader reads a JSON string. If you want to read a .json file checkout JsonFileReader.

use Plum\PlumJson\JsonReader;

$reader = new JsonReader('[{'key1': 'value1', 'key2': 'value2'}]');
$reader->getIterator(); // -> \ArrayIterator


Plum\PlumJson\JsonFileReader reads a .json file.

use Plum\PlumJson\JsonFileReader;

$reader = new JsonFileReader('foo.json');
$reader->getIterator(); // -> \ArrayIterator


Plum\PlumJson\JsonFileWriter writes the items as JSON into a file.

use Plum\PlumJson\JsonFileWriter;

$writer = new JsonFileWriter('foobar.json');
$writer->writeItem(['key1' => 'value1', 'key2' => 'value2'));

It is essential that finish() is called, because there happens the actual writing. The prepare() method does nothing.


Plum\PlumJson\JsonWriter converts the items into JSON format. Please checkout JsonFileWriter if you want to write the JSON into a file.

use Plum\PlumJson\JsonWriter;

$writer = new JsonWriter();
$writer->writeItem(['key1' => 'value1', 'key2' => 'value2'));
echo $writer->getJson(); // [{'key1': 'value1', 'key2': 'value2'}]


Plum\PlumJson\JsonDecodeConverter uses Braincrafted\Json to decode JSON.

use Plum\PlumJson\JsonDecodeConverter;
use Braincrafted\Json\Json;

$converter = new JsonDecodeConverter(Json::DECODE_ASSOC);
$converter->convert('{"foo": "bar"}'); // -> ['foo' => 'bar']


Plum\PlumJson\JsonEncodeConverter uses Braincrafted\Json to encode an object into JSON.

use Plum\PlumJson\JsonEncodeConverter;

$converter = new JsonEncodeConverter();
$converter->convert(['foo' => 'bar']); // -> '{"foo": "bar"}'

Change Log

Version 0.3 (7 May 2015)

  • Add JsonDecodeConverter
  • Add JsonEncodeConverter

Version 0.2 (22 April 2015)

  • Add support for ReaderFactory

Version 0.1 (17 February 2015)

  • Initial release


The MIT license applies to plumphp/plum- json. For the full copyright and license information, please view the LICENSE file distributed with this source code.