---
name: "cpanel_json_xs"
section: "1p"
platform: "linux"
package: "perl-cpanel-json-xs"
version: "4.40-2"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/cpanel_json_xs"
---

# cpanel\_json\_xs(1p)

Cpanel::JSON::XS commandline utility

## NAME

cpanel\_json\_xs - Cpanel::JSON::XS commandline utility

## SYNOPSIS

```
   cpanel_json_xs [-v] [-f inputformat] [-t outputformat]
```

## DESCRIPTION

*cpanel\_json\_xs* converts between some input and output formats (one of them is JSON).

The default input format is `"json"` and the default output format is `"json-pretty"`.

## OPTIONS

- \-v

  Be slightly more verbose.

- \-f fromformat

  Read a file in the given format from STDIN.

  `"fromformat"` can be one of:

  - json - a json text encoded, either utf-8, utf16-be/le, utf32-be/le

    - json-nonref - json according to RFC 7159

    - json-relaxed - json with all relaxed options

    - json-unknown - json with allow\_unknown

    - storable - a Storable frozen value

    - storable-file - a Storable file (Storable has two incompatible formats)

    - bencode - uses one of Net::BitTorrent::Protocol::BEP03::Bencode, Bencode or the broken Convert::Bencode, if available (used by torrent files, among others)

    - clzf - Compress::LZF format (requires that module to be installed)

    - eval - evaluate the given code as (non-utf-8) Perl, basically the reverse of "-t dump"

    - yaml - loose YAML (requires YAML)

    - yaml-tiny - loose YAML (requires YAML::Tiny or CPAN::Meta::YAML)

    - yaml-xs - strict YAML 1.2 (requires YAML::XS)

    - yaml-syck - YAML (requires YAML::Syck)

    - cbor - CBOR (via CBOR::XS)

    - string - do not attempt to decode the file data

    - sereal - Sereal (via Sereal::Decoder)

    - none - nothing is read, creates an "undef" scalar - mainly useful with "-e"

    - \-t toformat

  Write the file in the given format to STDOUT.

  `"toformat"` can be one of:

  - json, json-utf-8 - json, utf-8 encoded

    - json-pretty - as above, but pretty-printed with sorted object keys

    - json-stringify - as json-pretty with allow\_stringify

    - json-relaxed - as json-pretty, but with the additional options

    \-\>allow\_stringify-\>allow\_blessed-\>convert\_blessed-\>allow\_unknown -\>allow\_tags-\>**stringify\_infnan**(1)

  - json-utf-16le, json-utf-16be - little endian/big endian utf-16

    - json-utf-32le, json-utf-32be - little endian/big endian utf-32

    - storable - a Storable frozen value in network format

    - storable-file - a Storable file in network format (Storable has two incompatible formats)

    - bencode - uses one of Net::BitTorrent::Protocol::BEP03::Bencode, Bencode or the broken Convert::Bencode, if available (used by torrent files, among others)

    - clzf - Compress::LZF format

    - yaml - loose YAML (requires YAML)

    - yaml-tiny - loose YAML (requires YAML::Tiny or CPAN::Meta::YAML)

    - yaml-xs - strict YAML 1.2 (requires YAML::XS)

    - yaml-syck - YAML (requires YAML::Syck)

    - dump - Data::Dump

    - dumper - Data::Dumper

    - string - writes the data out as if it were a string

    - sereal - Sereal (via Sereal::Encoder)

    - none - nothing gets written, mainly useful together with "-e"

    Note that Data::Dumper doesn't handle self-referential data structures correctly - use "dump" instead.

- \-e code

  Evaluate perl code after reading the data and before writing it out again - can be used to filter, create or extract data. The data that has been written is in `$_`, and whatever is in there is written out afterwards.

## EXAMPLES

```
   cpanel_json_xs -t none <isitreally.json
```

"JSON Lint" - tries to parse the file *isitreally.json* as JSON - if it is valid JSON, the command outputs nothing, otherwise it will print an error message and exit with non-zero exit status.

```
   <src.json cpanel_json_xs >pretty.json
```

Prettify the JSON file *src.json* to *dst.json*.

```
   cpanel_json_xs -f storable-file <file
```

Read the serialized Storable file *file* and print a human-readable JSON version of it to STDOUT.

```
   cpanel_json_xs -f storable-file -t yaml <file
```

Same as above, but write YAML instead (not using JSON at all :)

```
   cpanel_json_xs -f none -e '$_ = [1, 2, 3]'
```

Dump the perl array as UTF-8 encoded JSON text.

```
   <torrentfile cpanel_json_xs -f bencode -e '$_ = join "\n", map @$_, @{$_->{"announce-list"}}' -t string
```

Print the tracker list inside a torrent file.

```
   lwp-request http://cpantesters.perl.org/show/Cpanel-JSON-XS.json | cpanel_json_xs
```

Fetch the cpan-testers result summary `"Cpanel::JSON::XS"` and pretty-print it.

```
    cpanel_json_xs -f yaml-xs -t yaml-tiny <META.yml   >MYMETA.yml
    cpanel_json_xs -f yaml-tiny -t yaml-xs <MYMETA.yml >XSMETA.yml
    cpanel_json_xs -f yaml -t yaml <XSMETA.yml #BOOM!
    Error: YAML_LOAD_ERR_BAD_MAP_ELEMENT
```

Compare YAML en- and decoders, and see that YAML::XS generates unparsable YAML \<https://github.com/ingydotnet/yaml-libyaml-pm/issues/9\>

## AUTHOR

Copyright (C) 2008 Marc Lehmann \<json@schmorp.de\> Copyright (C) 2016 Cpanel Inc
