CPANEL_JSON_XS(1p)
πΈ CPANEL_JSON_XS π
okay bestie, sit DOWN, because this is the command-line glow-up of the Cpanel::JSON::XS module β it lives in your friendly neighborhood User Contributed Perl Documentation, section <pink>1p</pink> π«Ά
β¨ NAME β¨
cpanel_json_xs β the Cpanel::JSON::XS command-line utility, like, the module but with a main character passport π
π SYNOPSIS π
cpanel_json_xs [-v] [-f inputformat] [-t outputformat]
π¦ DESCRIPTION π¦
cpanel_json_xs converts between a bunch of input and output formats, and yes, one of them is JSON (the icon of the group chat, fr fr) π
The default input format is json and the default output format is json-pretty. no cap, it just does that out of the box β¨
π OPTIONS π
-vβ be slightly more verbose. just a lil chatty. a whisper of extra info π£οΈ-ffromformat β read a file in the given format from STDIN, because reading is fundamental π
fromformat can be one of:
jsonβ a json text encoded, either utf-8, utf16-be/le, utf32-be/lejson-nonrefβ json according to RFC 7159json-relaxedβ json with all relaxed optionsjson-unknownβ json with allow_unknownstorableβ a Storable frozen valuestorable-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 dumpyamlβ 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 dataserealβ Sereal (via Sereal::Decoder)noneβ nothing is read, creates an"undef"scalar β mainly useful with-e
-ttoformat β write the file in the given format to STDOUT, i.e. it's giving output π
toformat can be one of:
json,json-utf-8β json, utf-8 encodedjson-prettyβ as above, but pretty-printed with sorted object keys (aesthetic β¨)json-stringifyβ as json-pretty with allow_stringifyjson-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-16json-utf-32le,json-utf-32beβ little endian/big endian utf-32storableβ a Storable frozen value in network formatstorable-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 formatyamlβ 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::Dumpdumperβ Data::Dumperstringβ writes the data out as if it were a stringserealβ Sereal (via Sereal::Encoder)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. that's not a vibe, that's a bug π
-ecode β 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 read is in$_, and whatever is in there is written out afterwards. so you're literally the main character editing the story mid-scene π₯
π 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 (silence, iconic), 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. glow-up complete π
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 :) β a crossover episode πΈ
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 at <https://github.com/ingydotnet/yaml-libyaml-pm/issues/9> π not me exposing the whole timeline
π AUTHOR π
Copyright (C) 2008 Marc Lehmann <json@schmorp.de>
Copyright (C) 2016 Cpanel Inc
and that's a wrap, bestie π«Ά this whole thing comes to you courtesy of perl v5.42.3, dated 2026-08-21, and it's the CPANEL_JSON_XS(1p) page β slay, read responsibly, and pipe responsibly too πβ¨π
π¦ where this page comes from
- ubuntu stonking: libcpanel-json-xs-perl 4.42-1build1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms