Crates.io | jxcape |
lib.rs | jxcape |
version | 0.2.0 |
source | src |
created_at | 2023-11-23 05:31:21.340448 |
updated_at | 2023-11-24 02:03:13.959787 |
description | A command line tool for creating JSON values |
homepage | |
repository | https://github.com/rhysparry/jxcape |
max_upload_size | |
id | 1045829 |
size | 31,924 |
jxcape
jxcape
is a tool for creating JSON values from the command line.
To convert a value into a JSON string, use the string
subcommand:
$ jxcape string "Hello, world!"
"Hello, world!"
It can also take input from stdin:
$ echo "Hello, world!" | jxcape string --from-stdin
"Hello, world!"
To convert a value into a JSON array, use the array
subcommand:
$ jxcape array 1 2 3
["1","2","3"]
By default, jxscape
will treat all input as strings. To treat input as native JSON, use the --auto
flag:
$ jxcape array --auto 1 2 3 foo
[1,2,3,"foo"]
Any value that cannot be parsed as JSON will be treated as a string.
It can also take input from stdin:
$ seq 3 | jxcape array --from-stdin
["1","2","3"]
If for some reason you need an empty array, you can use the --empty
flag:
$ jxcape array --empty
[]
This is included mostly for completeness.
To convert a value into a JSON object, use the object
subcommand:
$ jxcape object foo=1 bar=2
{"foo":"1","bar":"2"}
By default, jxscape
will treat all input as strings. To treat input as native JSON, use the --auto
flag:
$ jxcape object --auto foo=1 bar=2 baz=3
{"foo":1,"bar":2,"baz":3}
Any value that cannot be parsed as JSON will be treated as a string.
It can also take input from stdin:
$ env | jxcape object --from-stdin
{"TERM":"xterm-256color","SHELL":"/bin/bash",...} # truncated for brevity
You can specify a custom separator using the --separator
flag:
$ jxcape object --separator=: foo:1 bar:2 baz:3
{"foo":"1","bar":"2","baz":"3"}
Separators can be multiple characters:
$ jxcape object --separator=:: foo::1 bar::2 baz::3
{"foo":"1","bar":"2","baz":"3"}
If a key is specified multiple times, the last value to appear will be used:
$ jxcape object foo=1 foo=2 foo=3
{"foo":"3"}
If for some reason you need an empty object, you can use the --empty
flag:
$ jxcape object --empty
{}
This is included mostly for completeness.
To pretty print a JSON value, use the --pretty
flag before the subcommand:
$ jxcape --pretty array 1 2 3
[
"1",
"2",
"3"
]
$ git clone https://github.com/rhysparry/jxcape.git
$ cd jxcape
$ cargo install --path .