CPANEL_JSON_XS(1)

πŸŽ€ NAME πŸŽ€

cpanel_json_xs is the Cpanel::JSON::XS commandline utility, bestie β€” and this is the CPANEL_JSON_XS(1) page from the User Contributed Perl Documentation. Main character energy only. πŸ’…

🌸 SYNOPSIS 🌸

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

πŸ’– DESCRIPTION πŸ’–

Okay so cpanel_json_xs converts between some input and output formats (one of them is JSON). No cap. ✨

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 read 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

Okay that's the page, bestie! This is the CPANEL_JSON_XS(1) manual from perl v5.42.0, dated 2026-10-15 β€” slay, bye! πŸ’–βœ¨

πŸ“¦ where this page comes from