---
name: "Dancer2::Serializer::JSON"
section: "3pm"
platform: "linux"
package: "libdancer2-perl"
version: "1.1.2+dfsg-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Dancer2::Serializer::JSON"
---

# Dancer2::Serializer::JSON(3pm)

Serializer for handling JSON data

## NAME

Dancer2::Serializer::JSON - Serializer for handling JSON data

## VERSION

version 1.1.2

## DESCRIPTION

This is a serializer engine that allows you to turn Perl data structures into JSON output and vice-versa.

## ATTRIBUTES

### content\_type

Returns 'application/json'

## METHODS

### serialize($content)

Serializes a Perl data structure into a JSON string.

### deserialize($content)

Deserializes a JSON string into a Perl data structure.

## FUNCTIONS

### from\_json($content, \\%options)

This is an helper available to transform a JSON data structure to a Perl data structures.

### to\_json($content, \\%options)

This is an helper available to transform a Perl data structure to JSON.

Calling this function will **not** trigger the serialization's hooks.

### Configuring the JSON Serializer using "set engines"

The JSON serializer options can be configured via `"set engines"`. The most common settings are:

- allow\_nonref

  Ignore non-ref scalars returned from handlers. With this set the "Hello, World!" handler returning a string will be dealt with properly.

Set engines should be called prior to setting JSON as the serializer:

```
 set engines =>
 {
     serializer =>
     {
         JSON =>
         {
            allow_nonref => 1
         },
     }
 };
 set serializer      => 'JSON';
 set content_type    => 'application/json';
```

### Returning non-JSON data.

Handlers can return non-JSON via `"send_as"`, which overrides the default serializer:

```
 get '/' =>
 sub
 {
     send_as html =>
     q{Welcome to the root of all evil...<br>step into my office.}
 };
```

Any other non-JSON returned format supported by 'send\_as' can be used.

## AUTHOR

Dancer Core Developers

## COPYRIGHT AND LICENSE

This software is copyright (c) 2024 by Alexis Sukrieh.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
