2 个不稳定版本

0.2.0 2023 年 11 月 24 日
0.1.0 2023 年 11 月 23 日

8#json-array

MIT/Apache

24KB
646

关于 jxcape

jxcape 是一个从命令行创建 JSON 值的工具。

字符串

要将值转换为 JSON 字符串,请使用 string 子命令

$ jxcape string "Hello, world!"
"Hello, world!"

它也可以从 stdin 获取输入

$ echo "Hello, world!" | jxcape string --from-stdin 
"Hello, world!"

数组

要将值转换为 JSON 数组,请使用 array 子命令

$ jxcape array 1 2 3
["1","2","3"]

默认情况下,jxscape 将所有输入视为字符串。要将输入视为原生 JSON,请使用 --auto 标志

$ jxcape array --auto 1 2 3 foo
[1,2,3,"foo"]

无法解析为 JSON 的任何值都将被视为字符串。

它也可以从 stdin 获取输入

$ seq 3 | jxcape array --from-stdin
["1","2","3"]

如果您需要空数组,可以使用 --empty 标志

$ jxcape array --empty
[]

这主要是为了完整性。

对象

要将值转换为 JSON 对象,请使用 object 子命令

$ jxcape object foo=1 bar=2
{"foo":"1","bar":"2"}

默认情况下,jxscape 将所有输入视为字符串。要将输入视为原生 JSON,请使用 --auto 标志

$ jxcape object --auto foo=1 bar=2 baz=3
{"foo":1,"bar":2,"baz":3}

无法解析为 JSON 的任何值都将被视为字符串。

它也可以从 stdin 获取输入

$ env | jxcape object --from-stdin
{"TERM":"xterm-256color","SHELL":"/bin/bash",...} # truncated for brevity

您可以使用 --separator 标志指定自定义分隔符

$ jxcape object --separator=: foo:1 bar:2 baz:3
{"foo":"1","bar":"2","baz":"3"}

分隔符可以是多个字符

$ jxcape object --separator=:: foo::1 bar::2 baz::3
{"foo":"1","bar":"2","baz":"3"}

如果某个键被多次指定,则将使用最后一个出现的值

$ jxcape object foo=1 foo=2 foo=3
{"foo":"3"}

如果您需要空对象,则可以使用 --empty 标志

$ jxcape object --empty
{}

这主要是为了完整性。

美化打印

要美化打印 JSON 值,请在子命令之前使用 --pretty 标志

$ jxcape --pretty array 1 2 3
[
  "1",
  "2",
  "3"
]

安装

从源码

$ git clone https://github.com/rhysparry/jxcape.git
$ cd jxcape
$ cargo install --path .

依赖项

~1.6–2.7MB
~51K SLoC