JSON_XS(1p)

✨ JSON_XS(1p) β€” the manual, but make it cute ✨

okay bestie, welcome to the JSON_XS(1p) page from the User Contributed Perl Documentation collection πŸ’– this is the official manual for json_xs and I'm about to explain the whole thing to you like we're texting at 2am, except every single fact is staying exactly where it is. no cap. 🫢


🌸 NAME 🌸

json_xs β€” the commandline utility that ships with JSON::XS πŸ’…


πŸŽ€ SYNOPSIS πŸŽ€

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

that's it. that's the whole vibe. three little flags and a dream ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea: json_xs converts between some input and output formats, and one of them β€” you guessed it β€” is JSON πŸŽ€

the default input format is json and the default output format is json-pretty. so if you just pipe stuff in and out, it's gonna pretty-print your JSON for you. iconic behaviour honestly πŸ‘‘


πŸ’… OPTIONS πŸ’…

  • -v β€” be slightly more verbose. just a lil bit. a sprinkle. not a lot. 🌈
  • -f fromformat β€” read a file in the given format from STDIN πŸ’–

fromformat can be one of these besties:

  • json β€” a json text encoded, either utf-8, utf16-be/le, utf32-be/le
  • cbor β€” CBOR (RFC 7049, CBOR::XS), a kind of binary JSON
  • storable β€” a Storable frozen value
  • storable-file β€” a Storable file (Storable has two incompatible formats)
  • bencode β€” use 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 β€” YAML format (requires that module to be installed)
  • string β€” do not attempt to decode the file data
  • 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 these:

  • json, json-utf-8 β€” json, utf-8 encoded
  • json-pretty β€” as above, but pretty-printed
  • json-utf-16le, json-utf-16be β€” little endian/big endian utf-16
  • json-utf-32le, json-utf-32be β€” little endian/big endian utf-32
  • cbor β€” CBOR (RFC 7049, CBOR::XS), a kind of binary JSON
  • cbor-packed β€” CBOR using extensions to make it smaller
  • storable β€” a Storable frozen value in network format
  • storable-file β€” a Storable file in network format (Storable has two incompatible formats)
  • bencode β€” use Convert::Bencode, if available (used by torrent files, among others)
  • clzf β€” Compress::LZF format
  • yaml β€” YAML::XS format
  • dump β€” Data::Dump
  • dumper β€” Data::Dumper
  • string β€” writes the data out as if it were a string
  • none β€” nothing gets written, mainly useful together with -e
⚠️ heads up bestie: note that Data::Dumper doesn't handle self-referential data structures correctly β€” use dump instead. this is a real one, don't get caught slipping πŸ’€
  • -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. so you're basically remixing your own data in one line, main character energy fr fr ✨

πŸ”₯ 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. silent success, loud failure, the way it should be 😌

<src.json json_xs >pretty.json

prettify the JSON file src.json to dst.json. (yes the command writes to pretty.json, the description says dst.json, we don't make the rules, we just report them πŸ’€)

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 :) β€” yes the manual literally put a smiley there and I respect it 🫢

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 πŸ‘‘

copyright (C) 2008 Marc Lehmann <json@schmorp.de> πŸ’œ


and that's the whole page bestie, no notes, you're now legally a json_xs expert πŸŽ€ this lil slice of documentation came from perl v5.40.1, dated 2025-09-08, filed under JSON_XS(1p) β€” go convert something cute πŸ’–βœ¨πŸ¦‹

πŸ“¦ where this page comes from