---
name: "Catmandu::Exporter::JSON"
section: "3pm"
platform: "linux"
package: "libcatmandu-perl"
version: "1.2024-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Catmandu::Exporter::JSON"
---

# Catmandu::Exporter::JSON(3pm)

a JSON exporter

## NAME

Catmandu::Exporter::JSON - a JSON exporter

## SYNOPSIS

```
    # From the command line
    catmandu convert YAML to JSON --pretty 1 < input.yml
    # Export in the line-delimited format
    catmandu convert YAML to JSON --line_delimited 1 < input.yml
    # In a Perl script
    use Catmandu;
    my $exporter = Catmandu->exporter('JSON', fix => 'myfix.txt');
    $exporter->add_many($arrayref);
    $exporter->add_many($iterator);
    $exporter->add_many(sub { });
    $exporter->add($hashref);
    printf "exported %d items\n" , $exporter->count;
```

## DESCRIPTION

This Catmandu::Exporter exports items serialized in JSON format. By default each item is printed condensed on one line.

## CONFIGURATION

- file

  Write output to a local file given by its path or file handle.  Alternatively a scalar reference can be passed to write to a string and a code reference can be used to write to a callback function.

- fh

  Write the output to an IO::Handle. If not specified, Catmandu::Util::io is used to create the output handle from the `"file"` argument or by using STDOUT.

- fix

  An ARRAY of one or more fixes or file scripts to be applied to exported items.

- encoding

  Binmode of the output stream `"fh"`. Set to "`":utf8"`" by default.

- pretty

  Pretty-print JSON

- indent

  - space\_before

  - space\_after

  - canonical

  JSON serialization options

- array

  Structure the data as a JSON array. Default is `1`.

- line\_delimited

  Export items as newline delimited JSON. Default is `0`. The `"array"`, `"pretty"`, `"indent"`, `"space_before"` and `"space_after"` options will be ignored if `"line_delimited"` is `1`.

## SEE ALSO

Catmandu::Exporter::YAML
