# Data

The `Data` class provides readers and writers for data. The class comes with handlers for `json`, `php`, `txt`, `xml` and `yaml` encoded data, but can be extended and customized.

****

- Full class name: `Kirby\Data\Data`
- Alias: `Data`
- Source: <https://github.com/getkirby/kirby/tree/5.5.3/src/Data/Data.php#L26>

****

### Data

- [Data::decode()](https://getkirby.com/docs/reference/objects/data/data/decode.md)
- [Data::encode()](https://getkirby.com/docs/reference/objects/data/data/encode.md)
- [Data::handler()](https://getkirby.com/docs/reference/objects/data/data/handler.md)
- [Data::read()](https://getkirby.com/docs/reference/objects/data/data/read.md)
- [Data::write()](https://getkirby.com/docs/reference/objects/data/data/write.md)

## Examples

### Reading a `json` file

```php
dump($kirby->root('index') . '/composer.json'));

/* result
Array
(
    [name] => getkirby/starterkit
    [description] => Kirby Starterkit
    [type] => project
    [keywords] => Array
        (
            [0] => kirby
            [1] => cms
            [2] => starterkit
        )

    [homepage] => https://getkirby.com
    [authors] => Array
        (
            [0] => Array
                (
                    [name] => Bastian Allgeier
                    [email] => bastian@getkirby.com
                    [homepage] => https://getkirby.com
                )

        )

    [support] => Array
        (
            [email] => support@getkirby.com
            [issues] => https://github.com/getkirby/starterkit/issues
            [forum] => https://forum.getkirby.com
            [source] => https://github.com/getkirby/starterkit
        )

    [require] => Array
        (
            [php] => >=7.1.0
            [getkirby/cms] => ^3.0
        )

    [config] => Array
        (
            [optimize-autoloader] => 1
        )

)
*/
```