PHPackages                             bartoszbartniczak/symfony-serializer-arrayobject-normalizer - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. bartoszbartniczak/symfony-serializer-arrayobject-normalizer

ActiveLibrary

bartoszbartniczak/symfony-serializer-arrayobject-normalizer
===========================================================

ArrayObject Normalizer for Symfony/Serializer component. This Normalizer works with ArrayObject objects and its subclasses.

14.5k1PHP

Since Jun 10Pushed 1y ago1 watchersCompare

[ Source](https://github.com/BartoszBartniczak/SymfonySerializerArrayObjectNormalizer)[ Packagist](https://packagist.org/packages/bartoszbartniczak/symfony-serializer-arrayobject-normalizer)[ RSS](/packages/bartoszbartniczak-symfony-serializer-arrayobject-normalizer/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

BartoszBartniczak\\Symfony-Serializer-ArrayObject-Noramlizer [![Build Status](https://camo.githubusercontent.com/ad9c1d8b3c55bea22499b435927206333f1781f20195aa9603854c62057d5c51/68747470733a2f2f7472617669732d63692e6f72672f426172746f737a426172746e69637a616b2f53796d666f6e7953657269616c697a657241727261794f626a6563744e6f726d616c697a65722e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/BartoszBartniczak/SymfonySerializerArrayObjectNormalizer) [![Coverage Status](https://camo.githubusercontent.com/1b38786cdb3956c0f641f69e78a09122a29c067563411c31c758bf5b55136e34/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f6769746875622f426172746f737a426172746e69637a616b2f53796d666f6e7953657269616c697a657241727261794f626a6563744e6f726d616c697a65722f62616467652e7376673f6272616e63683d6d6173746572)](https://coveralls.io/github/BartoszBartniczak/SymfonySerializerArrayObjectNormalizer?branch=master)
=======================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================================

[](#bartoszbartniczaksymfony-serializer-arrayobject-noramlizer--)

ArrayObject Normalizer for Symfony/Serializer component. This Normalizer works with ArrayObject objects and its subclasses.
---------------------------------------------------------------------------------------------------------------------------

[](#arrayobject-normalizer-for-symfonyserializer-component-this-normalizer-works-with-arrayobject-objects-and-its-subclasses)

### Configuration

[](#configuration)

```
use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Serializer;
use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
use BartoszBartniczak\SymfonySerializer\Normalizer\ArrayObjectNormalizer;

$normalizers = [
    new ArrayObjectNormalizer(), //add ArrayObjectNoralizer to the normalizers array
    new ObjectNormalizer(),
    ];

$encoders = [
    new JsonEncoder()
];

$serializer = new Serializer($normalizers, $encoders);
```

### Examples

[](#examples)

#### Simple ArrayObject (De-)Serialization

[](#simple-arrayobject-de-serialization)

```
$json = $serializer->serialize(new \ArrayObject(['a' => 1, 'c' => 3, 'e' => 5, 'g' => 7]), 'json');
```

In the `$json` variable you should contains now this JSON document:

```
{
  "a": 1,
  "c": 3,
  "e": 5,
  "g": 7
}
```

Now you can deserialize this JSON object back to `\ArrayObject`:

```
$serializer->deserialize($json, \ArrayObject::class, 'json');
```

#### Array Of Objects (De-)Serialization

[](#array-of-objects-de-serialization)

If the `\ArrayObject` contains objects of some class, you need to define the type for deserialization.

```
$arrayOfObjects = new \ArrayObject([
  'einstein' => new Person('Albert Einstein'),
  'tesla' => new Person('Nikola Tesla')
]);

$json = $serializer->serialize($arrayOfObjects, 'json');

// deserialization
$deserializedObject = $serializer->deserialize($json, \ArrayObject::class.'', 'json');
```

#### Subclasses (extending the \\ArrayObject class)

[](#subclasses-extending-the-arrayobject-class)

This Normalizer supports inheritance of objects. You can extend the `\ArrayObject` (e.g. for adding some methods) and this Normalizer still will be able to (de-)serialize objects.

```
