JSON\_XS(1) User Contributed Perl Documentation JSON\_XS(1)

# [NAME](#NAME)

json\_xs - JSON::XS commandline utility

# [SYNOPSIS](#SYNOPSIS)

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

# [DESCRIPTION](#DESCRIPTION)

*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](#OPTIONS)

[-v](#v)

Be slightly more verbose.

[-f fromformat](#f)

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)

[cbor - CBOR (RFC 7049, CBOR::XS), a kind of binary JSON](#cbor)

[storable - a Storable frozen value](#storable)

[storable-file - a Storable file (Storable has two incompatible formats)](#storable~2)

[bencode - use Convert::Bencode, if available (used by torrent files, among others)](#bencode)

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

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

[yaml - YAML format (requires that module to be installed)](#yaml)

[string - do not attempt to decode the file data](#string)

[none - nothing is read, creates an "undef" scalar - mainly useful with "-e"](#none)

[-t toformat](#t)

Write the file in the given format to STDOUT.

"toformat" can be one of:

[json, json-utf-8 - json, utf-8 encoded](#json,)

[json-pretty - as above, but pretty-printed](#json~2)

[json-utf-16le, json-utf-16be - little endian/big endian utf-16](#json~3)

[json-utf-32le, json-utf-32be - little endian/big endian utf-32](#json~4)

[cbor - CBOR (RFC 7049, CBOR::XS), a kind of binary JSON](#cbor~2)

[cbor-packed - CBOR using extensions to make it smaller](#cbor~3)

[storable - a Storable frozen value in network format](#storable~3)

[storable-file - a Storable file in network format (Storable has two incompatible formats)](#storable~4)

[bencode - use Convert::Bencode, if available (used by torrent files, among others)](#bencode~2)

[clzf - Compress::LZF format](#clzf~2)

[yaml - YAML::XS format](#yaml~2)

[dump - Data::Dump](#dump)

[dumper - Data::Dumper](#dumper)

[string - writes the data out as if it were a string](#string~2)

[none - nothing gets written, mainly useful together with "-e"](#none~2)

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

[-e code](#e)

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](#EXAMPLES)

```
   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 json_xs >pretty.json
```

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

```
   json_xs -f storable-file <file
```

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

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

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

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

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

```
   <torrentfile 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/JSON-XS.json | json_xs
```

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

# [AUTHOR](#AUTHOR)

Copyright (C) 2008 Marc Lehmann &lt;json@schmorp.de&gt;

2026-10-24 perl v5.44.0

---

Document: json_xs(1) from perl-json-xs 4.04-r4 (Chainguard OS)
Source: https://cpan.metacpan.org/authors/id/M/ML/MLEHMANN/JSON-XS-4.04.tar.gz
